refactor: extract asset wait into dedicated job and improve smoke report#33
Merged
Merged
Conversation
- Add wait-for-assets job that all platform jobs depend on. This eliminates the race condition where Homebrew/Scoop start before GoReleaser finishes uploading assets and pushing manifests. - Remove duplicate polling from each Linux matrix entry. - Each platform job now outputs the installed version string. - Report table shows installed version and tag match status per platform, making version propagation issues immediately visible. - Linux Docker step now redirects install noise to stderr so only the version string is captured as the step output.
There was a problem hiding this comment.
Pull request overview
Refactors the post-release smoke GitHub Actions workflow to prevent platform-specific smoke jobs from racing ahead of GoReleaser asset uploads, and extends the final summary to include installed version details and tag-match status.
Changes:
- Adds a dedicated
wait-for-assetsjob that polls the release until assets are available, and makes platform jobs depend on it. - Plumbs installed-version outputs from Linux/macOS/Windows jobs into the final report summary.
- Enhances the report table to show per-platform installed version and whether it exactly matches the target tag.
GitHub Actions matrix jobs don't reliably expose per-leg outputs to downstream jobs (only one set is visible, non-deterministic). Split into linux-ubuntu and linux-debian jobs so each has its own stable output and independent result. The report now accurately reflects per-image pass/fail and installed version without ambiguity.
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
Restructures the post-release smoke workflow to eliminate the race condition where platform jobs start before GoReleaser finishes, and improves the report table for better observability.
Changes
New job dependency graph:
1. Dedicated
wait-for-assetsjobPreviously, the asset polling loop lived inside the Linux Docker matrix job (running twice — once per image). Now it's a single shared job that all platform jobs depend on. Benefits:
2. Enhanced report table
The report now shows:
exact,mismatch, orn/aExample output:
gitm version v1.0.15gitm version v1.0.143. Version output plumbing
Each platform job now outputs its installed version string via
$GITHUB_OUTPUT, which the report job consumes.Context
In run #25306468877, macOS installed
v1.0.14and Scoop installedv1.0.14while the target wasv1.0.15— because they started 4 minutes before GoReleaser finished. The report showed all green, hiding the version mismatch. This refactor fixes that by making all jobs wait for assets first.