gha: don't double-quote board/maintainer filter values#462
Open
iav wants to merge 1 commit into
Open
Conversation
The chunk template wrapped FILTERS values in literal double quotes inside single-quoted strings, so values like "BOARD:helios64" leaked into TARGETS_FILTER_INCLUDE with the quotes as part of the value. The Python filter then split on `:` and ended up with key='"BOARD' / value='helios64"', matching no boards and failing the "Prepare Info JSON and Matrices" step. Drop the inner double quotes — single-quotes already preserve the value verbatim, and TARGETS_FILTER_INCLUDE expects an unquoted KEY:VALUE token. Assisted-by: Claude:claude-opus-4-7
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
The chunk template
userpatches/gha/chunks/050.single_header.yaml— used byrecreate-matrix.ymlto (re)generate allcomplete-artifact-matrix-*.ymlworkflows — wraps the
inputs.boardandinputs.maintainervalues inliteral double quotes inside single-quoted strings:
bashsingle quotes preserve content verbatim, so$FILTERSends up asthe literal 8-character string
"BOARD:helios64"(quotes included). Bashthen substitutes that into the command line as-is, and
compile.shreceives a
TARGETS_FILTER_INCLUDEvalue whose quotes are part of thestring.
lib/tools/info/targets-compositor.pysplits the filter on:and endsup with
key='"BOARD'/value='helios64"'— no board in inventorymatches that key, and the run fails at
Prepare Info JSON and Matrices:Reproduction
Trigger Build Standard Support Images (admin) from Actions and pick
any concrete board from the
board:combobox (e.g.helios64), leaveeverything else at defaults → Run workflow.
Fresh failures (both on the same
board:helios64input):Fix
Drop the wrapping double quotes — single quotes already preserve the
value verbatim, no escaping is needed:
Two-line change, single source file. The five generated
complete-artifact-matrix-*.ymlfiles will pick up the fix on the nextrecreate-matrix.ymlrun (manual dispatch or the existingcron: 00 5 * * *schedule).
Notes
0460037(2026-03-15, "Update actions"); it did not change these lines.The bug has been latent since the
board:/maintainer:comboboxinputs were introduced. Most users probably feed
targetsFilterIncludedirectly and never hit this path.
board=all(andmaintainer=all) in theform, and set
targetsFilterInclude=BOARD:<board>directly — thatinput flows into
FILTERSvia line 318 (FILTERS="${{ ... .targetsFilterInclude }}"), which is not wrapped in extra quotes.Test plan
recreate-matrix.yml(or wait for cron)..github/workflows/complete-artifact-matrix-*.ymlfiles contain
FILTERS='BOARD:${{ ... }}'(no inner quotes).Build Standard Support Images (admin)withboard=helios64, confirm thePrepare Info JSON and Matricessteppasses and the matrix is non-empty.