ci(release): split publish workflow into build, publish, and release jobs - #63
Conversation
…jobs Separate PyPI upload from GitHub Release so a failed release step can be re-run without re-uploading to PyPI. No Environment approval gate. Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: multica-agent <github@multica.ai>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e80eb9a023
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| path: | | ||
| dist/*.whl | ||
| dist/*.tar.gz | ||
| .changelog.md |
There was a problem hiding this comment.
Include the hidden changelog artifact
On any tag release, this split workflow now depends on uploading .changelog.md from build and downloading it in github-release, but actions/upload-artifact ignores hidden files by default unless include-hidden-files is set (see https://github.com/actions/upload-artifact#uploading-hidden-files). The dist files still make this upload step succeed, so PyPI can publish and then softprops/action-gh-release fails because body_path: .changelog.md is missing, breaking the repository's Release workflow invariant that tags create a GitHub Release from CHANGELOG.md.
Useful? React with 👍 / 👎.
upload-artifact ignores dotfiles by default, so .changelog.md never reached the github-release job. Use release-notes.md instead. Co-authored-by: multica-agent <github@multica.ai>
|
Addressed Codex P1 (discussion):
Fix: write/upload/use non-hidden |
Co-authored-by: multica-agent <github@multica.ai>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20d605884b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| steps: | ||
| - name: Download release artifacts | ||
| uses: actions/download-artifact@v7.0.1 |
There was a problem hiding this comment.
Pin download-artifact to an existing release
On every tag after build succeeds, the publish job tries to resolve actions/download-artifact@v7.0.1; I checked the upstream releases and that tag returns 404, with the release list going from v7.0.0 to v8.0.0/v8.0.1. This means both newly added artifact download steps fail before PyPI upload or GitHub Release creation, so pin this to an existing ref such as v7.0.0, v8.0.1, or a major tag.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in the latest commit: pinned both download steps to actions/download-artifact@v7.0.0 (verified tag exists). v7.0.1 was a non-existent pin; upload-artifact@v7.0.1 stays as-is because that tag is valid.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #63 +/- ##
=======================================
Coverage 92.72% 92.72%
=======================================
Files 36 36
Lines 2721 2721
Branches 461 461
=======================================
Hits 2523 2523
Misses 117 117
Partials 81 81 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
actions/download-artifact has no v7.0.1 release (404). Use v7.0.0 so the publish and github-release jobs can resolve the action after build. Co-authored-by: multica-agent <github@multica.ai>
|
Addressed Codex P1 (discussion):
Verified:
Earlier P1 (hidden |
Summary
Follow-up to #62: split the Release workflow into three jobs without a GitHub Environment / required-reviewer gate (small maintainer set).
builduv build, dist version check, changelog extraction, upload artifactpublishgithub-releaseAlso updates
docs/RELEASING.mdfailure notes: prefer Re-run failed jobs, avoid Re-run all jobs after a successful PyPI upload.Out of scope
environment: pypiTest plan
environment:,id-tokenonly onpublishgithub-releasefails, re-run failed only