Skip to content

CI: report real job results in the build notification - #116

Merged
jglanz merged 1 commit into
masterfrom
fix/cicd-notification-job-results
Sep 8, 2026
Merged

CI: report real job results in the build notification#116
jglanz merged 1 commit into
masterfrom
fix/cicd-notification-job-results

Conversation

@heifner

@heifner heifner commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

The notification 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 — the status in the message was never derived from the inputs at all.

The most recent run on master shows this directly: its notification log reads Result: {} and Overall: SUCCESS. Everything genuinely did pass there, so the message happened to be correct, but it would have read the same had the build failed.

The all-passing gate was never affected; only the chat message was wrong.

What changed

job-results moves 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.

The reported set, the skipped-to-success mapping for build-platforms, and the all-passing gate are unchanged — only the delimiter was wrong. The comment claiming the comma form matched wire-sysio is dropped; that repository had the same defect and is fixed in Wire-Network/wire-sysio#602.

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 tracks the action by @v1, so it also picks up that fix once the tag is moved.

The `notification` 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 — the status in the message was never derived from the inputs at all.

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.

The reported set and the skipped-to-success mapping for `build-platforms` are unchanged, as is the `all-passing` gate — only the delimiter was wrong.
@jglanz
jglanz merged commit 2fe0822 into master Sep 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants