Name every CI job for what it checks: three are called test and two image #319
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#319
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Asked for on 2026-09-29: several CI jobs are called
test; name each for what it checks, so that a failed one says what failed.What is there today
No job in
.forgejo/workflows/has aname:, so Forgejo shows each by its id:ci.ymltesttestthree times, one per Python in the matrix (CI / test (3.12) (push)in the commit status)ci.ymlpostgrespostgresci.ymlsecuritysecurityci.ymlstylesstylesci.ymlbrowserbrowserdev-image.ymlimageimageimage.ymlimageimagedependencies.ymlupgradeupgraderelease.ymlreleasereleaseA red
testcan mean a lint error, a missing migration, a stale catalogue, a failing test, the coverage floor or the deployment check, and it does not say which Python it was without opening it. Two jobs are calledimage.What to do
Give every job a
name:that says what it checks, keeping the ids (other files read them by id). A proposal:ci.ymltestUnit tests (Python ${{ matrix.python-version }}), andUnit tests and coverage (Python 3.14)for the leg that measures itci.ymlpostgresDatabase tests on PostgreSQLci.ymlsecuritySecurity auditci.ymlstylesStylesheet, icons and scripts currentci.ymlbrowserBrowser tests (Chromium)dev-image.ymlimageDev image: build, scan, pushimage.ymlimageRelease image: build, scan, pushdependencies.ymlupgradeMonthly dependency upgraderelease.ymlreleasePublish the releaseWorth deciding with it: the checks that are not tests. ruff, the migrations check and the catalogue checks run inside every
testleg, three times, and a failure in one of them is reported as a failed test on every Python at once. A job of their own,Lint, migrations and translations, run once, would name that failure for what it is and save two runs of each on a runner the three legs already share (#233).What depends on the names
scripts/release_tools.py::REQUIRED_JOBSfinds the jobs a release must have passed by the commit status's name:^CI / test \(for every test leg and^CI / browserfor the browser. The release and image workflows refuse a tag unless it finds them green, so renaming the jobs without updating those patterns refuses every tag.tests/test_release_tools.pypins the contexts it expects; they change with it. If the checks move to a job of their own, the gate should require it too.CI / Unit tests (Python 3.12) (push)and so on. Nothing else here reads them: there is no branch protection rule onmaintoday.${{ matrix.* }}injobs.<id>.name; confirm that this Forgejo does (the first run's statuses show it), or name the legs another way.CONTRIBUTING.mdand any wiki page that names a job.Done when