Repository navigation
ci: run every tool's checks from one workflow with one required check - #349
Merged
Merged
Conversation
ci.yml has the only changes job, a call per tool's workflow when its paths changed, and "CI passed", now the one required check. The tools' workflows lose their own changes and passed jobs, concurrency groups and push and pull_request triggers. Drafts skip every tool's checks. New policies keep called workflows free of concurrency groups and their own triggers, keep report and semver jobs from failing a call, and check that a call grants what its jobs ask for.
bnb
approved these changes
Oct 31, 2026
Coverage Report for apps/web
File CoverageNo changed files found.SizeNothing from main to compare with yet. KiB are 1,024 bytes.
|
Coverage Report for apps/localtoolbox
File CoverageNo changed files found.SizeNothing from main to compare with yet. KiB are 1,024 bytes.
|
Contributor
Author
|
Closing and reopening so CI reruns on a merge ref that includes #348's test fix. Branch unchanged. |
Rust coverageFrom run 4. Both are held to the thresholds in .cargo/config.toml.
|
2 of 4 tasks
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.
What and why
Every pull request push started about 53 jobs, and the org sat at the Free plan's 20-job cap for long stretches. 37% of the jobs were the
changesandpassedgate jobs that each of 8 workflows started on every event, even when nothing they check changed..github/workflows/ci.yml. It has onechangesjob with every tool's paths filter, one job per tool that calls its workflow when its paths changed, and one "CI passed" job. "CI passed" fails when a call fails, is cancelled, or is skipped while its output was true, and on drafts.locallibrary-ci,web-ci,localtoolbox-ci,atstore-ci,mix-report,npm-advisories,workflow-lintandrepo-checksnow trigger only onworkflow_call. npm-advisories and repo-checks also keep their weekly schedule. Removed from each: itschangesjob, itspassedjob, itsconcurrencyblock (a call gets the caller's group and would cancel it), and its push and pull_request triggers.reportandsemverjobs havecontinue-on-error: true, so they still can't block a merge.sizesandcoverageartifacts toweb-sizes,web-coverageandlocaltoolbox-sizes, since one run now holds all of them.size-reporttakes the artifact name as an input.tools/policy/workflows.rego, each with tests: called workflows have no concurrency group and no push or pull_request trigger; report and semver jobs in called workflows havecontinue-on-error; a call grants every permission its workflow's jobs ask for, which actionlint doesn't check across files.The first pull requests after this merges find no main artifact to compare coverage and sizes with, and the first push to main diffs against the commit before it.
Before merging: an admin applies the ruleset file from this branch (
tools/ruleset.sh apply). The live ruleset requires the 8 old names, which this branch no longer reports. After that, open pull requests merge main to report "CI passed".How it was tested
tools/policy.sh: 70/70 Rego tests at full coverage, 47/47 conftest checks. Each new rule failed when its condition was broken on purpose against the real files.continue-on-errorkeeps a failedreportfrom failing its call, only show on GitHub.