Skip to content

refactor: extract asset wait into dedicated job and improve smoke report#33

Merged
alexandreafj merged 2 commits into
masterfrom
refactor/smoke-wait-job-and-report
May 4, 2026
Merged

refactor: extract asset wait into dedicated job and improve smoke report#33
alexandreafj merged 2 commits into
masterfrom
refactor/smoke-wait-job-and-report

Conversation

@alexandreafj
Copy link
Copy Markdown
Owner

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:

resolve-release → wait-for-assets → linux-docker
                                   → macos-homebrew
                                   → windows-scoop
                                                    → report

1. Dedicated wait-for-assets job

Previously, 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:

  • Homebrew and Scoop no longer start before GoReleaser finishes uploading assets and pushing manifests
  • Single poll loop instead of duplicate per matrix entry
  • Reduces wasted billable minutes (macOS/Windows runners don't spin up just to install stale versions)

2. Enhanced report table

The report now shows:

  • Installed version per platform (not just pass/fail)
  • Tag match status: exact, mismatch, or n/a
  • Assets readiness status

Example output:

Platform Result Installed Version Tag Match
install.sh (ubuntu:24.04) success gitm version v1.0.15 exact
Homebrew cask (macOS) success gitm version v1.0.14 mismatch

3. 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.14 and Scoop installed v1.0.14 while the target was v1.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.

- 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.
Copilot AI review requested due to automatic review settings May 4, 2026 07:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-assets job 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.

Comment thread .github/workflows/post-release-smoke.yml
Comment thread .github/workflows/post-release-smoke.yml Outdated
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.
@alexandreafj alexandreafj merged commit 2cf4df5 into master May 4, 2026
@alexandreafj alexandreafj deleted the refactor/smoke-wait-job-and-report branch May 4, 2026 08:10
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