Split dist-smoke into its own non-blocking workflow (#1611)#1710
Merged
Conversation
The dist-smoke-test gate is currently red on #1709 (klangkd's caddy child can't coexist with another caddy / binds 2019 on bootstrap instead of the UDS) — a klangkd bug, not a wheel-packaging bug. Holding the release pipeline hostage to the smoke being green means no release can happen until #1709 is fixed, which is the wrong coupling. Restructure: - New .github/workflows/dist-smoke.yml — standalone workflow, workflow_dispatch only, two jobs (build-wheel → dist-smoke-test). No publish. This is now a release-engineering tool the release manager runs against a release- candidate branch before tagging (`gh workflow run dist-smoke.yml --ref <branch>`). - Revert .github/workflows/release.yml to its pre-#1705 shape: build-and-release + build-wheel (env: pypi, publishes) run in parallel, no smoke in the chain. The "never yank" invariant now holds by workflow: the release manager runs dist-smoke.yml against the RC branch first, and only tags once it's green (or after manually assessing any failures). - scripts/dist-smoke-test.sh header: updated the CI-without-tagging pointer to reference dist-smoke.yml instead of release.yml's workflow_dispatch. Also notes in dist-smoke.yml that the smoke is currently expected to fail until #1709 lands, so a maintainer running it isn't surprised. Follow-up to #1705, #1707, #1708.
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.
Follow-up to #1705 / #1707 / #1708 / #1709.
Summary
Split the dist-smoke test out of
release.ymlinto its own standalone workflow that does NOT block release. The smoke gate is currently red on #1709 (a klangkd caddy bug, not a wheel-packaging bug); keeping it as a release blocker meant no release could happen until #1709 is fixed — the wrong coupling.Changes
.github/workflows/dist-smoke.yml—workflow_dispatchonly. Two jobs:build-wheel(no publish — this isn't a release) →dist-smoke-test. A release manager runs it against a release-candidate branch to validate the wheel that's about to be published actually serves a working login page (gh workflow run dist-smoke.yml --ref <branch>). Notes in the file that it's currently expected to fail until klangkd's caddy child can't coexist with any other caddy on the host (admin endpoint hard-wired to 127.0.0.1:2019 on bootstrap) #1709 lands.release.ymlreverted to its pre-Release smoke test: Playwright verifies login page from installed wheel (#1611) #1705 shape —build-and-releaseandbuild-wheel(env:pypi, publishes as its last step) run in parallel, no smoke in the chain, noworkflow_dispatch. Tag-push-only.scripts/dist-smoke-test.sh— header comment updated to point atdist-smoke.yml(was pointing atrelease.yml'sworkflow_dispatch, which no longer exists).Topology
release.ymlpush: tags: v*build-and-release∥build-wheel(publishes PyPI)dist-smoke.ymlworkflow_dispatchbuild-wheel→dist-smoke-test(no publish)"Never yank" invariant
Still holds — by workflow, not by CI gate. The release manager runs
dist-smoke.ymlagainst the RC branch first, and only tags once it's green (or after manually assessing any failures). A broken wheel reaching PyPI requires the release manager to skip the smoke step, which is a human decision, not an accident.Verification
Both YAML files parse. Job topology confirmed via
python -c 'import yaml; ...':release.yml: both jobs at(root)(parallel),build-wheelcarriesenvironment: pypi.dist-smoke.yml:build-wheel→dist-smoke-test, noenvironment.First end-to-end run of the new smoke workflow happens the next time someone runs
gh workflow run dist-smoke.yml— expected to fail on #1709 until that lands.