CI: reach each run's PostgreSQL by a name of its own; move brotli past PYSEC-2026-4322 #1040
No reviewers
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo!1040
Loading…
Reference in a new issue
No description provided.
Delete branch "ci-postgres-own-host"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two things fail on
mainand on every pull request, and neither is the change being proposed. They come in one pull request so thatmainturns green in one run. Supersedes #1039.1. PostgreSQL tests: each run reaches its own server
On this runner every job joins the shared
forgejonetwork. Every run's PostgreSQL service was calleddb, so when two runs overlapped (the push run and the pull-request run of one commit, or two pull requests), Docker's DNS answereddbwith either server. A test createdtest_postuloon one server, andpg_dump,psqlor the teardown looked for it on the other:FATAL: database "test_postulo" does not exist. This failed #1038 and #1039.--network-alias db-${{ github.run_id }}-${{ github.run_attempt }}.PG_HOSTholds that name, and the four connection strings use it.2. Security audit: brotli
pip-audit --strictreports PYSEC-2026-4322 against brotli 1.2.0, fixed in 1.2.1:uv lock --upgrade-package brotli, nothing else moves.Tests
zizmor(the workflow lint CI runs): no findings.tests/test_image_build.py,tests/test_release_tools.py,tests/test_security_audit.py: 103 passed.🤖 Generated with Claude Code
The runner puts every job on one shared network, so two runs' db services answered to the same name: a test created its database on one server and pg_dump looked for it on the other ("database test_postulo does not exist"). The service gets an alias made of the run id and attempt, and the job connects to that. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>