Repository navigation
ci: gate pull requests on a single Build Success check - #23
Merged
Merged
Conversation
Collapses lint.yaml, tests.yaml and e2e.yaml into one ci.yaml whose jobs fan in to a Build Success job, so a ruleset can require branches to be up to date before merge. All four job bodies are unchanged. Requiring the individual jobs is unsafe: they are skipped for release-please PRs, and a required check that never reports blocks the pull request permanently. Build Success runs on !cancelled(), so it reports whether its dependencies pass or skip. The pull request trigger drops paths-ignore for the same reason. Job names are derived from their ids, so test becomes unit-test and build-check becomes bundle-freshness rather than the names being reworded to match weaker ids. The e2e job keeps its per-example suffix so each matrix leg still reports a distinct check. The e2e job keeps its previous trigger scope through an event guard rather than a separate file, and the unpinned-uses ignore follows it into ci.yaml with its rationale unchanged. Signed-off-by: Devin Buhl <devin@buhl.casa>
Greptile SummaryConsolidates the existing lint, unit-test, bundle-freshness, and end-to-end checks into one CI workflow.
|
| Filename | Overview |
|---|---|
| .github/workflows/ci.yaml | Combines the existing validation jobs under a single workflow and adds an aggregate required-check candidate; no actionable correctness issue was established. |
| .github/workflows/lint.yaml | Deletes the standalone lint workflow after moving its unchanged job body into ci.yaml. |
| .github/workflows/tests.yaml | Deletes the standalone test workflow after moving its unit-test and bundle-freshness jobs into ci.yaml. |
| .github/zizmor.yml | Retargets the existing local-action exception from e2e.yaml to ci.yaml. |
Reviews (1): Last reviewed commit: "ci: gate pull requests on a single Build..." | Re-trigger Greptile
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.
Overview
Collapses
lint.yaml,tests.yamlande2e.yamlinto a singleci.yamlwhosejobs fan in to a
Build Successjob, so a ruleset can require branches to be upto date before merge.
All four job bodies are unchanged. Same change as home-operations/kromgo#321.
Additional information
GitHub rejects
strict_required_status_checks_policyunless at least one checkis required, and the individual jobs are unsafe to require: they are skipped for
release-please PRs, and a required check that never reports blocks the PR
permanently.
Build Successruns on!cancelled(), so it reports whether itsdependencies pass or skip.
The pull request trigger drops
paths-ignorefor the same reason.Job names are derived from their ids. Rather than reword the names to match
weaker ids, the ids moved to match the names:
test— "Unit Tests"unit-test— "Unit Test"build-check— "Bundle Freshness"bundle-freshness— "Bundle Freshness"The e2e job keeps its per-example suffix (
E2E (${{ matrix.example }})) so eachmatrix leg still reports a distinct check, and keeps its previous trigger scope
through an event guard rather than a separate file.
The
unpinned-usesignore follows the e2e job intoci.yaml; the rationale isunchanged, as the job still runs the action from the checkout under test.
Verified before pushing: every job body is byte-identical to
origin/main, theset of comments carried over is identical (43 lines, none lost, none added, none
orphaned by the reordering),
Build Successgates all four, andactionlint,zizmorandoxfmtare clean.Requirements
written by an AI agent (Claude Code) under maintainer direction, as part of a
wider branch-protection rollout. Per the AI Usage Policy this exceeds assistive
use and needs maintainer review before merge.