CI: check the catalogues and the static files once, not both as a step and as a test #725
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#725
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?
Measured from Forgejo's task API and job logs, runs 561–710 (24 Sep – 4 Oct 2026): wall time per push about 52–55 min, up from about 15; the browser suite grew from 149 to 645 tests in five days and runs serially (29 min); the runner takes two jobs at a time, in the order the workflow file lists them, so the browser job starts 19–22 min after the push; and Forgejo cancels the older push run when a newer push lands, which stopped 18 of 56 browser jobs before they gave a verdict.
Several checks run on CI twice: as a step, and as a test the suite runs.
messages.py extract --check↔test_translations.py:205-242, whose docstring says it repeats the step.messages.py check↔test_translations.py:187-202, 2 tests × 1,292 catalogues = 2,584 items.messages.py stats --check↔test_messages_tool.py:411-415.collectstaticwith the manifest storage ↔test_static.py:13-24.Each re-parses the 1,292 catalogues (39.5 MB); with xdist's
loaddistribution each worker that runs one of them parses them itself.Proposal
Using the
--durationsoutput the CI logs gain, keep one of each pair: the in-suite test where it is cheap, because a developer runningpytestbefore a push gets it for free; the step where the test is the slow one. Whatever is dropped is replaced by a sentence pointing at the other half.Done when