Fix Gitea Actions: drop custom job container, use setup-python
CI / lint:ruff (push) Successful in 1m49s
CI / format:ruff (push) Successful in 7s
CI / typecheck:ty (push) Successful in 10s
CI / vulnerabilities:pip-audit (push) Failing after 9s
CI / test:pytest (push) Has been skipped

The python:3.11-slim job container lacked a Node.js runtime, so the
runner couldn't exec actions/checkout inside it. Run jobs on the
default runner image instead and pin Python via actions/setup-python.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 13:13:17 +02:00
parent ea5ec680c5
commit f7294909a2
3 changed files with 23 additions and 28 deletions
+20 -25
View File
@@ -8,70 +8,65 @@ jobs:
lint:
name: lint:ruff
runs-on: ubuntu-latest
container: python:3.11-slim
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
- uses: actions/setup-python@v5
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('pyproject.toml') }}
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- run: pip install -e ".[dev,plotting]"
- run: ruff check gallery plotstyle tests
format:
name: format:ruff
runs-on: ubuntu-latest
container: python:3.11-slim
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
- uses: actions/setup-python@v5
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('pyproject.toml') }}
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- run: pip install -e ".[dev,plotting]"
- run: ruff format --check gallery plotstyle tests
typecheck:
name: typecheck:ty
runs-on: ubuntu-latest
container: python:3.11-slim
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
- uses: actions/setup-python@v5
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('pyproject.toml') }}
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- run: pip install -e ".[dev,plotting]"
- run: ty check gallery plotstyle
vulnerabilities:
name: vulnerabilities:pip-audit
runs-on: ubuntu-latest
container: python:3.11-slim
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
- uses: actions/setup-python@v5
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('pyproject.toml') }}
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- run: pip install -e ".[dev,plotting]"
- run: pip-audit
test:
name: test:pytest
runs-on: ubuntu-latest
container: python:3.11-slim
needs: [lint, format, typecheck, vulnerabilities]
steps:
- uses: actions/checkout@v4
- name: Cache pip
uses: actions/cache@v4
- uses: actions/setup-python@v5
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('pyproject.toml') }}
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- run: pip install -e ".[dev,plotting]"
- run: python -m pytest tests/ -v
+1 -1
View File
@@ -133,6 +133,6 @@ The frontend is vanilla ES modules — no build step. `assets/js/main.js` import
### Deployment
The project ships a `Dockerfile` plus `docker-compose.yml` (a `generator` service that runs `gallery generate` on an interval, and an `nginx`-based `web` service serving the output — see `deploy/entrypoint.sh` and `deploy/nginx.conf`). This suits a dedicated VM/server you fully control. CI (`.gitea/workflows/ci.yml`, run via Gitea Actions) runs `ruff check`, `ruff format --check`, `ty check`, `pip-audit`, and pytest directly against a `python:3.11-slim` image — no container build/publish in CI. For local development the `.venv` (or `uv`) is sufficient.
The project ships a `Dockerfile` plus `docker-compose.yml` (a `generator` service that runs `gallery generate` on an interval, and an `nginx`-based `web` service serving the output — see `deploy/entrypoint.sh` and `deploy/nginx.conf`). This suits a dedicated VM/server you fully control. CI (`.gitea/workflows/ci.yml`, run via Gitea Actions) runs `ruff check`, `ruff format --check`, `ty check`, `pip-audit`, and pytest on the default runner image with Python 3.11 via `actions/setup-python` — no container build/publish in CI. For local development the `.venv` (or `uv`) is sufficient.
On shared HPC login nodes without a Docker daemon (e.g. KIT ETP, where `public_html` is already auto-served) use a plain venv install plus a `systemd --user` timer instead — see `deploy/systemd/README.md`.
+2 -2
View File
@@ -58,5 +58,5 @@ usable there at all, fall back to a crontab entry instead:
where you control a dedicated VM/server and need to serve the output yourself.
On the ETP login nodes there's no Docker daemon (Apptainer/Singularity only),
and `public_html` is already auto-served — running your own nginx there would
be redundant. Docker is still used for CI (`.gitea/workflows/ci.yml`) and
remains a fine option for anyone deploying this on their own server.
be redundant. It remains a fine option for anyone deploying this on their own
server.