Tests im Dockerfile statt über setup-python

actions/setup-python@v5 lädt seine Runtime von GitHub-Releases und
scheitert auf dem Gitea-Runner - der Lauf brach vor dem Deploy ab.

Die Tests laufen jetzt in einer eigenen Dockerfile-Stufe, die der
Workflow mit --target test aufruft. Damit gilt für sie dieselbe
Python-Version und derselbe Paketstand wie für die Produktion, und der
Schritt braucht nichts außer dem Docker-Daemon, den der Runner ohnehin
nutzt. Ein Bind-Mount des Workspace wäre keine Option gewesen: der liegt
im Job-Container, der Pfad zeigt auf dem Host ins Leere.

Die Teststufe hängt nicht am finalen Image und wird beim Deploy-Build
übersprungen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lucas Orth
2026-09-06 12:13:42 +02:00
parent 811dba4e98
commit 208aadc9bc
3 changed files with 21 additions and 9 deletions

View File

@@ -16,15 +16,13 @@ jobs:
with:
github-server-url: http://gitea:3000
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Abhaengigkeiten installieren
run: pip install -r requirements-dev.txt
# Kein setup-python: die Action laedt ihre Runtime von GitHub-Releases
# und scheitert auf dem Gitea-Runner. Stattdessen laufen die Tests in
# einer eigenen Stufe des Dockerfiles - gegen dieselbe Python-Version
# und dieselben Pakete wie die Produktion. Ein roter Lauf bricht hier
# ab, bevor irgendetwas auf dem Server angefasst wird.
- name: Tests
run: pytest -q
run: docker build --target test .
- name: Tag ermitteln
run: echo "IMAGE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV