feat(ci): add post-publish smoke test to validate PyPI install#1239
Conversation
|
The "Verify Python import" step will throw an SummaryThe new Issues Found🔴 Critical —
|
|
Solid, focused addition that closes a real gap in the release pipeline. Two minor nits before this is pristine. SummaryThe Issues Found🟢 Minor —
|
…bypass, gate release grep -qF prevents dots in version strings from being treated as regex wildcards. --no-cache-dir ensures retries actually re-query PyPI instead of serving a cached 404. The final-attempt sleep guard avoids a wasted 30s wait when all retries are exhausted. Most critically, github-release now depends on post-publish-smoke instead of publish-pypi so a broken wheel actually blocks the release.
|
Solid addition that closes a real gap: before this, a broken wheel could reach users with no automated catch between Issues Found🟢 Minor — Test plan item is backwards (description, not code)The test plan says "Verify the job runs in parallel with That's actually the correct design (catching a bad wheel before publishing the Release page is the whole point), but the test plan checkbox describes it wrong. Worth correcting in the PR description so reviewers tick the right mental box. 🟢 Minor — Only Python 3.11 testedThe smoke test runs on Python 3.11. If GAIA supports 3.10 (the version in For a smoke test this is acceptable, but noting it so the team can decide whether to add a 3.10 leg in a follow-up. 🟢 Nit — Pre-existing silent fallback in
|
There was a problem hiding this comment.
The earlier blocking bot finding (gaia.version AttributeError) is stale — head verifies via importlib.metadata and exercises gaia-emr. Verified the version logic lines up: validate.outputs.tag_version is ${TAG_NAME#v} (bare), gaia --version prints the bare importlib.metadata version, and the import step does an exact != check, so both the grep -qF and the equality check behave correctly. One description fix noted inline (the test-plan "runs in parallel" bullet is the opposite of the diff, which correctly gates the Release on the smoke test). Approving.
After
publish.ymlpublishes to PyPI, there's no verification that the package actually installs and works — a broken wheel can reach users undetected. This adds apost-publish-smokejob that installsamd-gaiafrom PyPI on a fresh runner and verifies all CLI entry points and the Python import work with the correct version.Test plan
post-publish-smokejob in.github/workflows/publish.ymlneeds: [validate, publish-pypi]andif: needs.publish-pypi.result == 'success'are correctcontinue-on-error: true— failure is loudgithub-release(not blocking it)Closes #1156