CI: report real job results in the build notification - #602
Merged
Conversation
The `all-passing` job passed `job-results` as a comma-separated list. Wire-Network/notification-action word-splits that input on whitespace and matches each word against `^([^:]+):([^:]+)$`, so a comma-separated list arrives as a single multi-colon word, matches nothing, and parses to `{}`. Every status probe against `{}` is false, so the action fell through to its `else` branch and posted `✅ SUCCESS` to Mattermost regardless of what the jobs did. Run 34144933071 failed the gcc build leg and still reported success.
Switch to the space-separated form the action actually parses. JSON is not a usable alternative here: the action interpolates the input unquoted into a double-quoted shell assignment, which strips the inner quotes and yields invalid JSON that fails the same way.
Also report `platform-cache` and `v`, and gate on them. Both feed `build-test-package`, so a failure in either leaves the build `skipped` and the notification naming a job that never ran. Neither can report `skipped` itself — `platform-cache`'s `Discover Platforms` and `v` are unconditional — so gating on them adds no false reds.
The merge gate was never affected; the trailing `run: false` step failed the job correctly and the run showed red on GitHub. Only the chat message was wrong.
This was referenced Sep 7, 2026
jglanz
approved these changes
Sep 8, 2026
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
all-passingpassedjob-resultsas a comma-separated list. Wire-Network/notification-action word-splits that input on whitespace and matches each word against^([^:]+):([^:]+)$, so a comma-separated list arrives as a single multi-colon word, matches nothing, and parses to{}. Every status probe against{}is false, so the action fell through to itselsebranch and posted✅ SUCCESSto Mattermost regardless of what the jobs did.Run 34144933071 failed its gcc build leg and reported green; the notification log shows
Result: {}followed byOverall: SUCCESS. This has been the behaviour for every failing build on this workflow.The merge gate was never affected. The trailing
run: falsestep failed the job correctly and the run showed red on GitHub — only the chat message was wrong.What changed
job-resultsmoves to the space-separated form the action actually parses. JSON is not a usable alternative: the action interpolates the input unquoted into a double-quoted shell assignment, which strips the inner quotes and yields invalid JSON that fails in exactly the same way.platform-cacheandvare now reported and gated on. Both feedbuild-test-package, so a failure in either leaves the buildskippedand the notification naming a job that never ran. Neither can reportskippeditself —vis unconditional, andplatform-cache'sDiscover Platformsjob has noif:— so gating on them introduces no false reds.Relationship to the action fix
Wire-Network/notification-action#1 makes the action accept commas and fail closed, which fixes this repository's notifications on its own. The two changes are deliberately redundant so neither has to land first. This repository pins the action by SHA, so it does not pick up that fix until the pin is bumped; this PR is what corrects the reporting in the meantime.