# Custom CI image for the arm64 (Raspberry Pi) Gitea Actions runner. # # The official sagemath/sagemath image is amd64-only; conda-forge's `sage` # package is the one place SageMath is actually published for linux-aarch64, # so this bakes it (plus the lint/test tools) into a single image, built and # pushed once rather than reinstalled on every CI run. # # Build & push (run directly on the Pi, or any arm64 machine with Docker): # docker build -t gitea.piribauer.ch/julian/sage-ci:latest -f .gitea/ci-image/Dockerfile . # docker login gitea.piribauer.ch -u julian # docker push gitea.piribauer.ch/julian/sage-ci:latest # # Rebuild and re-push whenever this Dockerfile changes (e.g. bumping the sage # version) or the pinned tool versions need updating. FROM condaforge/miniforge3:latest RUN mamba install -y -c conda-forge sage ruff pytest \ && mamba clean -afy # actions/checkout@v4 (and other JS-based actions) run via `node` inside this # container -- act_runner doesn't inject a runtime of its own when a custom # `container:` image is set, so one has to be present here. RUN mamba install -y -c conda-forge nodejs \ && mamba clean -afy WORKDIR /workspace