Reducing comments
This commit is contained in:
@@ -1,26 +1,16 @@
|
||||
# Custom CI image for the arm64 (Raspberry Pi) Gitea Actions runner.
|
||||
# Custom CI image for the arm64 (Raspberry Pi) Gitea Actions runner,
|
||||
# since the official sagemath/sagemath image is amd64-only.
|
||||
#
|
||||
# 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):
|
||||
# Build & push commands:
|
||||
# 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
|
||||
|
||||
|
||||
+3
-14
@@ -1,18 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# Reproduces the CI "Preparse .sage files" step locally, so `ruff check` sees
|
||||
# the same generated *.sage.py files that the pipeline lints. Run this before
|
||||
# `ruff check --no-respect-gitignore .` to catch issues that only show up in
|
||||
# the generated output.
|
||||
#
|
||||
# Uses the sage.repl.preparse.preparse_file() Python API directly rather than
|
||||
# the `sage --preparse` CLI flag: the conda-forge `sage` binary used in CI is
|
||||
# a cut-down entry point that doesn't support `--preparse` (or `--python`) at
|
||||
# all, unlike the official sagemath CLI. Whichever `python` on PATH can
|
||||
# actually `import sage.repl` is used to run it -- in CI that's the conda
|
||||
# env's own `python`; locally (official sage install) it's `sage --python`.
|
||||
#
|
||||
# The generated files are gitignored; clean them up afterwards with:
|
||||
# git clean -x sage/ playground/
|
||||
|
||||
# This script is run in the CI container to preparse all .sage files into .sage.py files
|
||||
# and can also be run locally for local linting/testing.
|
||||
|
||||
set -e
|
||||
|
||||
|
||||
+1
-12
@@ -9,9 +9,7 @@ on:
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
# Custom image (see .gitea/ci-image/Dockerfile): the official
|
||||
# sagemath/sagemath image is amd64-only and this runner is arm64, and
|
||||
# ruff/pytest are baked in here so jobs don't reinstall them every run.
|
||||
# Custom image (see .gitea/ci-image/Dockerfile)
|
||||
container:
|
||||
image: gitea.piribauer.ch/julian/sage-ci:latest
|
||||
|
||||
@@ -20,18 +18,9 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Preparse .sage files
|
||||
# Turns each *.sage file into real Python (*.sage.py) so ruff can
|
||||
# parse it, and prepends the `from sage.all import *` that `sage`
|
||||
# normally injects at runtime, so Sage's globals (ZZ, var, matrix, ...)
|
||||
# resolve instead of looking like undefined names.
|
||||
run: .gitea/preparse.sh
|
||||
|
||||
- name: ruff check
|
||||
# --no-respect-gitignore: *.sage.py is gitignored (it's generated, see
|
||||
# the previous step) but that's exactly what we need to lint here.
|
||||
# `python` here is the conda env's own interpreter -- it already has
|
||||
# sage/ruff/pytest importable, `sage --python` isn't a real flag on
|
||||
# the conda-forge sage CLI.
|
||||
run: python -m ruff check --no-respect-gitignore .
|
||||
|
||||
test:
|
||||
|
||||
Reference in New Issue
Block a user