Fix Gitea Actions: drop custom job container, use setup-python
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:
+20
-25
@@ -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
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user