chore(ci): adopt the ci-status composite and bump check-jsonschema#32
Merged
Conversation
Replaces the inlined lane-aggregation loop with the shared ci-status composite from ci-workflows. The same nine lines were duplicated byte-identically across seven repos; this is one of the six adopters. The composite is not a like-for-like copy of what it replaces. It fixes two false greens the inline block carried: `read -ra` consumed only the first line of the results string, so a multi-line input left every lane after the first unchecked, and the whitespace-only guard trimmed spaces only, so newline- or tab-only input skipped the loop and reported success. Both were unreachable while the block was fed a single-line interpolation and both become reachable once the input is an action input. Empty input now fails closed rather than passing. Also bumps the four check-jsonschema pins to the same ci-workflows SHA, which carries the nullglob fix: an unmatched glob previously reached the tool as a literal path and crashed it, and the fix guards a fully-empty expansion so it fails loudly rather than validating nothing. That guard is what makes the `.github/workflows/*.yml` glob adopted in #29 safe against a future rename leaving it matching nothing. Other ci-workflows composite pins stay at 1d3762c; Dependabot owns those bumps and moving all of them here would pull ten days of unrelated change into a targeted fix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UmDSbhvfsnpL1DuTMjjJtP
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.
No related issue: rollout of the decision recorded in melodic-software/ci-workflows#163, plus the pin bump that makes melodic-software/ci-workflows#162 live here.
Summary
Two changes to
ci.yml, both about consumingci-workflowscomposites.1. Adopt the
ci-statuscomposite. The nine-line lane-aggregation loop was duplicated byte-identically across seven repos. It now lives inci-workflows(melodic-software/ci-workflows#164) and this is one of the six adopters.2. Bump the four
check-jsonschemapins to the same SHA, which carries thenullglobfix from melodic-software/ci-workflows#165.Worth reviewing deliberately rather than as a mechanical extraction. The inline block being replaced had two defects, both found by Codex review on melodic-software/ci-workflows#164:
read -ra results <<< "$RESULTS"consumed only the first line. A multi-line results string left every lane after the first unchecked — the gate reported success while a lane had failed.Both were unreachable while the block was fed a single-line
${{ }}interpolation, and both become reachable once the input is an action input. Reproduced against the old logic:All four now exit 1. Empty input also now fails closed where it previously passed — a deliberate behavior change: a gate with nothing to aggregate is a miswired
needslist, not a pass.Why the pin bump matters here specifically
#29 replaced this repo's hand-enumerated workflow list with
.github/workflows/*.yml. Thenullglobfix guards a fully-empty expansion so it fails loudly instead of validating nothing — that guard is what keeps the glob safe if a future rename ever leaves it matching zero files.Test plan
actionlint— cleancheck-jsonschemavendor.github-workflowsagainst all 5 workflows —ok, exit 0needslistRelated
ci-workflowsitselfnullglobfix now pinned hererun:blocks are not ShellCheck-covered, which is why both bugs above reached review rather than CIci-workflowscomposite pins deliberately stay at1d3762c; Dependabot owns those bumps, and moving all of them here would pull ten days of unrelated change into a targeted fix.