ci: tests in een container draaien in plaats van een venv op de runner
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m38s
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m38s
De testsstap die ik in v0.5.00 toevoegde blokkeerde de deploy: de runner heeft geen python3-venv, dus `python3 -m venv` faalde en alle volgende stappen werden overgeslagen. - Tests draaien nu in python:3.12-slim via docker, dat de runner sowieso heeft. Bijkomend voordeel: dezelfde Python-versie als waarop de app in productie draait, in plaats van wat er toevallig op de runner staat. - PYTHONDONTWRITEBYTECODE en -p no:cacheprovider voorkomen dat de container root-eigen __pycache__/.pytest_cache in de werkmap achterlaat, wat de rsync-stap en volgende checkouts zou kunnen hinderen. - Pip-cache in een named volume, zodat een herhaalde run niet opnieuw downloadt. Toegepast in deploy.yml, deploy-prod.yml en build.yml. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
This commit is contained in:
parent
f40fd39ed9
commit
342b2ee9e5
3 changed files with 36 additions and 9 deletions
|
|
@ -56,9 +56,18 @@ jobs:
|
||||||
- name: Tests draaien
|
- name: Tests draaien
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
python3 -m venv /tmp/su-build-venv
|
# In een container in plaats van een venv op de runner: die heeft
|
||||||
/tmp/su-build-venv/bin/pip install -q -r server-up/requirements.txt pytest
|
# geen python3-venv, en zo draaien de tests bovendien op exact de
|
||||||
/tmp/su-build-venv/bin/python -m pytest tests -q
|
# Python-versie waarop de app in productie draait.
|
||||||
|
# PYTHONDONTWRITEBYTECODE + no:cacheprovider voorkomen dat er
|
||||||
|
# root-eigen bestanden in de werkmap achterblijven.
|
||||||
|
docker run --rm \
|
||||||
|
-v "$PWD:/w" -w /w \
|
||||||
|
-v su-pip-cache:/root/.cache/pip \
|
||||||
|
-e PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
python:3.12-slim \
|
||||||
|
sh -c "pip install -q -r server-up/requirements.txt pytest \
|
||||||
|
&& python -m pytest tests -q -p no:cacheprovider"
|
||||||
|
|
||||||
- name: Inloggen op de registry
|
- name: Inloggen op de registry
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,18 @@ jobs:
|
||||||
- name: Tests draaien
|
- name: Tests draaien
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
python3 -m venv /tmp/su-test-venv
|
# In een container in plaats van een venv op de runner: die heeft
|
||||||
/tmp/su-test-venv/bin/pip install -q -r server-up/requirements.txt pytest
|
# geen python3-venv, en zo draaien de tests bovendien op exact de
|
||||||
/tmp/su-test-venv/bin/python -m pytest tests -q
|
# Python-versie waarop de app in productie draait.
|
||||||
|
# PYTHONDONTWRITEBYTECODE + no:cacheprovider voorkomen dat er
|
||||||
|
# root-eigen bestanden in de werkmap achterblijven.
|
||||||
|
docker run --rm \
|
||||||
|
-v "$PWD:/w" -w /w \
|
||||||
|
-v su-pip-cache:/root/.cache/pip \
|
||||||
|
-e PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
python:3.12-slim \
|
||||||
|
sh -c "pip install -q -r server-up/requirements.txt pytest \
|
||||||
|
&& python -m pytest tests -q -p no:cacheprovider"
|
||||||
|
|
||||||
- name: Sync code naar deploy-directory
|
- name: Sync code naar deploy-directory
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,18 @@ jobs:
|
||||||
- name: Tests draaien
|
- name: Tests draaien
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
python3 -m venv /tmp/su-test-venv
|
# In een container in plaats van een venv op de runner: die heeft
|
||||||
/tmp/su-test-venv/bin/pip install -q -r server-up/requirements.txt pytest
|
# geen python3-venv, en zo draaien de tests bovendien op exact de
|
||||||
/tmp/su-test-venv/bin/python -m pytest tests -q
|
# Python-versie waarop de app in productie draait.
|
||||||
|
# PYTHONDONTWRITEBYTECODE + no:cacheprovider voorkomen dat er
|
||||||
|
# root-eigen bestanden in de werkmap achterblijven.
|
||||||
|
docker run --rm \
|
||||||
|
-v "$PWD:/w" -w /w \
|
||||||
|
-v su-pip-cache:/root/.cache/pip \
|
||||||
|
-e PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
python:3.12-slim \
|
||||||
|
sh -c "pip install -q -r server-up/requirements.txt pytest \
|
||||||
|
&& python -m pytest tests -q -p no:cacheprovider"
|
||||||
|
|
||||||
- name: Sync code naar deploy-directory
|
- name: Sync code naar deploy-directory
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue