Modernize CI actions and restore component badges - #66
Merged
pasunboneleve merged 1 commit intoAug 12, 2026
Merged
Conversation
Context: GitHub now forces Node 20-based actions onto Node 24, and reusable Stack and Cabal workflows no longer produce meaningful native workflow badges. Decision: Upgrade checkout to v6 and cache actions to v5. Add always-run Stack and Cabal result jobs, compose them through ci-gate, and expose their exact check names through branch check-run badges. Alternatives considered: Running stack.yml and cabal.yml independently would restore native workflow badges, but it would duplicate matrices and split the existing scope and gate policy. A representative matrix-job badge would not summarize every resolver or compiler. Tradeoffs: The component badges depend on Shields' public check-runs endpoint and show no status until the first master run creates the named checks. Architectural impact: The existing scope and reusable matrix boundaries remain. Two component result jobs provide stable observable checks, while ci-gate remains the aggregate merge check. SemVer: PATCH. This changes CI and README metadata without changing the package API or runtime behaviour.
pasunboneleve
marked this pull request as ready for review
August 12, 2026 05:00
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
cabal buildandstack buildcomponent checks without duplicating either matrixci-gateas the aggregate merge checkWhy
GitHub now warns that the existing Node 20-based action releases are deprecated and forcibly run on Node 24. The CI consolidation also turned
stack.ymlandcabal.ymlinto reusable workflows, so their native workflow badges reportno statuseven when their matrices pass.The component result jobs preserve the current scope and reusable-workflow architecture. Each job reports its matrix result under a stable check name, and
ci-gatecomposes those two results. The README uses branch check-run badges for those exact names, avoiding duplicate CI runs.Validation
actionlint -shellcheck=scripts/ci-scope-test.shgit diff --check master...HEADactions/checkout@v6andactions/cache@v5tagsgpt-5.6-luna, substantive review, passing verdict, no findingsFull matrix validation is intentionally left to this pull request's GitHub Actions run.
Release impact
PATCH-level CI and README metadata change. The package API and runtime behaviour are unchanged. This repository has no changelog or
VERSIONfile to update.