Simplify CI - #4
Merged
Merged
Conversation
* Drop unnecessary jobs and optimise jobs with shared roots
* Also updated links to images (images are not yet actually published)
* This is unrelated to the changes on this branch and the formatting issues predate the fork
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Collapses seven workflow files into two and cuts CI cost. The suite ran every job
twice on each PR push (
on: [push, pull_request]), installed all ofdev-requirements.txtfour separate times to run three linters, and repeated anidentical services + apt + pip setup for
pytestandbehave. Roughly 135runner-minutes per PR push down to ~19.
ci.yml—lint(black/flake8/mypy in one job, off a tools-only install),test(pytest + behave sharing one setup),client, andimages(defaultbranch only, gated on the other three). Adds a
concurrencygroup sosuperseded runs cancel.
server.yml'sinstalljob: its only real step was gatedif: python-version != '3.12'while the caller passed only'3.12', so itbooted three services and installed everything to do nothing. Note this leaves
data/vocabularies.jsonwith no load coverage — re-enabling it needs theupstream 3.12 issue fixed first.
take them by merging upstream; bumps here only created merge conflicts), and
two dead
release/3entries dropped. Actions are now SHA-pinned with# vX.Y.Zcomments Dependabot resolves and rewrites.dockerhub.yml→publish.yml: it pushed tosourcefabricoss/*, upstreamSourcefabric's namespace, so it could only ever fail at the push step. Now
publishes
codeforafrica/superdesk-pesacheck-{server,client}.black --check .was already failing onpesacheckfor 7 fork-owned files.
Run Black on server/fixes that. It is formattingonly and can be reviewed independently of the CI changes.
Test plan
lintgreen (verified locally against the pinned black/flake8/mypy).testgreen. Service containers moved from mongo 4 / elastic 7.17.25 tomongo 6 / elastic 7.17.29 to match
docker-compose.yml— this combinationhas not run in CI before.
imagesruns only on push topesacheck, and is skipped whenlint,test, orclientfails.