Skip to content

chore(ci): add setup-cli smoke test workflow#5315

Merged
avallete merged 7 commits into
developfrom
claude/add-setup-cli-smoke-tests-lXr11
May 20, 2026
Merged

chore(ci): add setup-cli smoke test workflow#5315
avallete merged 7 commits into
developfrom
claude/add-setup-cli-smoke-tests-lXr11

Conversation

@avallete
Copy link
Copy Markdown
Member

@avallete avallete commented May 20, 2026

Add a new GitHub Actions workflow to smoke test the supabase/setup-cli action against published CLI versions. This catches regressions like setup-cli#427 where musl libc and archive layout changes broke the action on Alpine silently.

Key changes:

  • New .github/workflows/setup-cli-smoke-test.yml workflow that:

    • Tests CLI installation across Ubuntu, macOS, and Windows runners
    • Includes a dedicated Alpine container job to catch musl libc regressions
    • Verifies the installed CLI version matches the expected version
    • Can be triggered manually via workflow_dispatch or called from other workflows
  • Updated .github/workflows/release-shared.yml to:

    • Add a setup-cli-smoke job that runs after beta releases
    • Runs as a post-publish signal without gating other release jobs
    • Uses always() && needs.publish.result == 'success' to run even when homebrew/scoop jobs are skipped or fail

The Alpine job is kept separate because GitHub Actions only honors the container: field on Linux runners, and the musl-vs-glibc regressions only reproduce inside a real Alpine container.

Closes: CLI-1507

https://claude.ai/code/session_01NzzeYET8sYhpCVdSvBBJhC

claude added 3 commits May 20, 2026 10:49
Adds two post-publish jobs to release-shared.yml that exercise
supabase/setup-cli against the just-published beta across the runners
real users hit: ubuntu-latest, macos-latest, windows-latest, and an
Alpine container (node:20-alpine to provide a musl-linked Node for the
JS action to launch).

Gated to beta releases (`channel == 'beta' && !dry_run`) so PR smoke
runs and stable cuts don't pay the wall-clock cost. The Alpine leg
exists to catch regressions like supabase/setup-cli#427 where musl
libc + archive layout changes broke the action silently.

Refs CLI-1507.
Extracts the post-beta setup-cli smoke jobs into a standalone reusable
workflow (`setup-cli-smoke-test.yml`) that supports both `workflow_call`
(invoked from release-shared.yml after a beta publish) and
`workflow_dispatch` with a `version` input. This lets us re-run the
smoke against any already-published CLI version on demand — useful when
debugging setup-cli regressions or confirming a previously broken
environment (Alpine) is back to green without cutting a new release.

release-shared.yml's two inline jobs collapse to a single nested
workflow call.
Moves the setup-cli smoke job to the end of release-shared.yml and
hangs it off publish, publish-homebrew, and publish-scoop so it can
never block the brew/scoop pushes — those run first and the smoke is
a post-release signal that fires regardless of channel.

`if: always() && !inputs.dry_run && needs.publish.result == 'success'`
keeps the smoke running when publish-homebrew / publish-scoop skip
(alpha) or fail, while still requiring the GitHub release the action
needs to download from.
@avallete avallete requested a review from a team as a code owner May 20, 2026 11:05
claude and others added 2 commits May 20, 2026 11:06
GitHub Actions disallows expressions in `uses:`, so the action ref is
selected via two `if:`-gated install steps keyed off a new
`major-version` matrix dimension. The cross-runner matrix now fans out
to 6 legs (ubuntu/macos/windows × v1/v2) and the Alpine job to 2 legs
(v1/v2), covering both the v1 archive-layout path and the v2
glibc/musl bun-binary path called out in supabase/setup-cli#427.
Copy link
Copy Markdown
Contributor

@jgoux jgoux left a comment

Choose a reason for hiding this comment

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

Nice, thanks Andrew!

@avallete avallete changed the title ci: add setup-cli smoke test workflow chore(ci): add setup-cli smoke test workflow May 20, 2026
@avallete avallete enabled auto-merge (squash) May 20, 2026 15:53
@avallete avallete merged commit 8fc9b68 into develop May 20, 2026
8 checks passed
@avallete avallete deleted the claude/add-setup-cli-smoke-tests-lXr11 branch May 20, 2026 15:57
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.

3 participants