ci: install release test harness dependencies
Some checks failed
Dependency Audit / dependency-audit (push) Successful in 1m37s
Security Audit / security-audit (push) Has been cancelled

This commit is contained in:
2026-07-23 01:15:07 +02:00
parent ff49dabf8f
commit 52bd3527cd
4 changed files with 21 additions and 1 deletions

View File

@@ -29,6 +29,7 @@ jobs:
python -m venv .venv
.venv/bin/python tools/repo/sync-python-environment.py --requirements requirements-release.txt --python .venv/bin/python --upgrade-pip
.venv/bin/python -m pip install '../govoplan-core[dev]'
.venv/bin/python -m pip install -r requirements-release-tests.txt
- name: Install WebUI release dependencies
working-directory: govoplan
run: bash tools/release/install-webui-release-dependencies.sh ../govoplan-core/webui

View File

@@ -114,7 +114,10 @@ For release validation:
```sh
./.venv/bin/python tools/repo/sync-python-environment.py --requirements requirements-release.txt --python ./.venv/bin/python
./.venv/bin/python -m pip install -r requirements-release-tests.txt
```
That install is necessary because the release environment intentionally resolves
tagged package refs, not local editable source trees.
tagged package refs, not local editable source trees. The second requirements
file contains only the harness needed to execute tests from those immutable
source tags; it is not part of the deployable release dependency set.

View File

@@ -0,0 +1,4 @@
# Test-harness dependencies used against immutable release source tags.
# Keep these separate from requirements-release.txt so they are not part of the
# deployable product dependency set.
pytest>=8,<9

View File

@@ -103,6 +103,18 @@ class ReleaseIntegrationTests(unittest.TestCase):
self.assertIn('--core-root "$ROOT"', script)
self.assertNotIn('"$PYTHON" -m unittest tests.test_module_system', script)
def test_release_workflow_installs_tagged_source_test_harness(self) -> None:
meta_root = Path(__file__).resolve().parents[1]
workflow = (meta_root / ".gitea" / "workflows" / "release-integration.yml").read_text(encoding="utf-8")
requirements = (meta_root / "requirements-release-tests.txt").read_text(encoding="utf-8")
install = workflow.index("pip install -r requirements-release-tests.txt")
checks = workflow.index("bash tools/checks/check-release-integration.sh")
self.assertLess(install, checks)
self.assertIn("pytest>=8,<9", requirements)
self.assertNotIn("requirements-release-tests.txt", (meta_root / "requirements-release.txt").read_text(encoding="utf-8"))
if __name__ == "__main__":
unittest.main()