CI: custom runner-base image, Node 22, pip caching

- infra/Dockerfile.runner-base: new Ubuntu 24.04 image with Python 3.12
  and Node 22 LTS pre-installed, tagged py3.12-node22. Eliminates the
  ~3-4 min deadsnakes PPA install that ran on every test job.
- infra/runner-compose.yml: update ubuntu-latest label to use
  runner-base:py3.12-node22 instead of node:20-bullseye.
- .forgejo/workflows/ci.yml: remove Python 3.12 install steps (now in
  base image), add actions/cache for pip keyed on pyproject.toml hash,
  bump node-version 20 → 22.
- Dockerfile: bump frontend build stage node:20-alpine → node:22-alpine.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bryan Van Deusen
2026-03-10 10:45:59 -04:00
parent f5bee4573f
commit dc03d71898
4 changed files with 34 additions and 13 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ services:
- GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_TOKEN}
- GITEA_RUNNER_NAME=swarm-runner
# Maps the runs-on: ubuntu-latest label used in workflow files to a Docker image.
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:20-bullseye
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://git.fabledsword.com/bvandeusen/runner-base:py3.12-node22
- CONFIG_FILE=/config/config.yml
volumes:
- /var/run/docker.sock:/var/run/docker.sock