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:
|
lint:
|
||||||
name: lint:ruff
|
name: lint:ruff
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:3.11-slim
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Cache pip
|
- uses: actions/setup-python@v5
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
python-version: "3.11"
|
||||||
key: pip-${{ hashFiles('pyproject.toml') }}
|
cache: pip
|
||||||
|
cache-dependency-path: pyproject.toml
|
||||||
- run: pip install -e ".[dev,plotting]"
|
- run: pip install -e ".[dev,plotting]"
|
||||||
- run: ruff check gallery plotstyle tests
|
- run: ruff check gallery plotstyle tests
|
||||||
|
|
||||||
format:
|
format:
|
||||||
name: format:ruff
|
name: format:ruff
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:3.11-slim
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Cache pip
|
- uses: actions/setup-python@v5
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
python-version: "3.11"
|
||||||
key: pip-${{ hashFiles('pyproject.toml') }}
|
cache: pip
|
||||||
|
cache-dependency-path: pyproject.toml
|
||||||
- run: pip install -e ".[dev,plotting]"
|
- run: pip install -e ".[dev,plotting]"
|
||||||
- run: ruff format --check gallery plotstyle tests
|
- run: ruff format --check gallery plotstyle tests
|
||||||
|
|
||||||
typecheck:
|
typecheck:
|
||||||
name: typecheck:ty
|
name: typecheck:ty
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:3.11-slim
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Cache pip
|
- uses: actions/setup-python@v5
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
python-version: "3.11"
|
||||||
key: pip-${{ hashFiles('pyproject.toml') }}
|
cache: pip
|
||||||
|
cache-dependency-path: pyproject.toml
|
||||||
- run: pip install -e ".[dev,plotting]"
|
- run: pip install -e ".[dev,plotting]"
|
||||||
- run: ty check gallery plotstyle
|
- run: ty check gallery plotstyle
|
||||||
|
|
||||||
vulnerabilities:
|
vulnerabilities:
|
||||||
name: vulnerabilities:pip-audit
|
name: vulnerabilities:pip-audit
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:3.11-slim
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Cache pip
|
- uses: actions/setup-python@v5
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
python-version: "3.11"
|
||||||
key: pip-${{ hashFiles('pyproject.toml') }}
|
cache: pip
|
||||||
|
cache-dependency-path: pyproject.toml
|
||||||
- run: pip install -e ".[dev,plotting]"
|
- run: pip install -e ".[dev,plotting]"
|
||||||
- run: pip-audit
|
- run: pip-audit
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: test:pytest
|
name: test:pytest
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:3.11-slim
|
|
||||||
needs: [lint, format, typecheck, vulnerabilities]
|
needs: [lint, format, typecheck, vulnerabilities]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Cache pip
|
- uses: actions/setup-python@v5
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
python-version: "3.11"
|
||||||
key: pip-${{ hashFiles('pyproject.toml') }}
|
cache: pip
|
||||||
|
cache-dependency-path: pyproject.toml
|
||||||
- run: pip install -e ".[dev,plotting]"
|
- run: pip install -e ".[dev,plotting]"
|
||||||
- run: python -m pytest tests/ -v
|
- 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
|
### 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`.
|
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.
|
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),
|
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
|
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
|
be redundant. It remains a fine option for anyone deploying this on their own
|
||||||
remains a fine option for anyone deploying this on their own server.
|
server.
|
||||||
|
|||||||
Reference in New Issue
Block a user