From 58fad47d90451ffd2f919dd04a1e60f79d7cd851 Mon Sep 17 00:00:00 2001 From: marwin Date: Fri, 28 Aug 2026 08:56:37 +0000 Subject: [PATCH] CI: auf Python 3.12 heben, damit gegen das getestet wird, was ausgeliefert wird MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Testlauf lief in catthehacker/ubuntu:act-22.04 mit Python 3.10. Django 6.1 verlangt >= 3.12, ließ sich dort also gar nicht installieren — was erst durch das Pinnen aufgefallen ist: vorher stand "django>=4.2" in requirements.txt und pip hat in CI still ein 4.x aufgelöst, während das Image auf python:3.12-slim ein 6.1 bekam. Die Suite hat damit eine andere Django-Version getestet als die ausgelieferte. 24.04 bringt Python 3.12 mit und markiert sein System-Python als extern verwaltet (PEP 668), deshalb laufen die Schritte jetzt über ein venv. Co-Authored-By: Claude Opus 5 --- .forgejo/workflows/test.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 5b671bd..a95c9a4 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -11,16 +11,25 @@ jobs: test: runs-on: ubuntu-latest container: - image: catthehacker/ubuntu:act-22.04 + # 22.04 ships Python 3.10, which cannot install the pinned Django (it + # needs >= 3.12). While requirements.txt still said "django>=4.2" that + # went unnoticed and pip quietly resolved a 4.x here — so CI was testing + # a different Django than the image actually shipped. 24.04 gives us + # 3.12, matching the Dockerfile's python:3.12-slim. + image: catthehacker/ubuntu:act-24.04 steps: - uses: actions/checkout@v4 - name: Install Python dependencies - run: pip install --no-cache-dir -r requirements.txt + # 24.04 marks its system Python as externally managed (PEP 668), so a + # bare `pip install` is refused. A venv is the sanctioned way in. + run: | + python -m venv /tmp/venv + /tmp/venv/bin/pip install --no-cache-dir -r requirements.txt - name: Django system check - run: python manage.py check + run: /tmp/venv/bin/python manage.py check - name: Run tests - run: python manage.py test + run: /tmp/venv/bin/python manage.py test