[build] make release pipeline rerun-safe#17626
Conversation
Review Summary by QodoMake release pipeline rerun-safe with duplicate handling
WalkthroughsDescription• Add error handling for already-published packages across languages - Node.js: rescue npm publish errors for previously published versions - Ruby: extract gem publishing logic with duplicate version detection - Python: enable skip-existing flag in PyPI publish action • Create release tags unconditionally at workflow start - Check if tag exists before creation to support workflow reruns - Remove language-specific tag creation condition • Prevent Java release reruns with explicit error message - Fail fast on Java rerun attempts due to staging repo complexity • Update workflow job dependencies to reflect tag creation changes Diagramflowchart LR
A["Release Workflow"] --> B["Create Tag<br/>Check if exists"]
A --> C["Publish Languages"]
C --> D["Node.js<br/>Rescue npm errors"]
C --> E["Ruby<br/>Rescue gem errors"]
C --> F["Python<br/>Skip existing"]
C --> G["Java<br/>Fail on rerun"]
B --> H["Docs & Verification"]
D --> H
E --> H
F --> H
File Changes1. rake_tasks/node.rake
|
Code Review by Qodo
1.
|
There was a problem hiding this comment.
Pull request overview
Makes the release workflow more rerun-safe so “Rerun failed jobs” can be used without forcing manual cleanup across languages.
Changes:
- Ruby/Node release tasks tolerate “already published” failures and skip instead of failing the workflow.
- PyPI publish step uses
skip-existingto avoid failing on reruns. - Workflow creates the release tag explicitly and adds a Java rerun guard (fails on rerun attempts).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
rake_tasks/ruby.rake |
Adds a helper to skip publishing when a gem version is already published. |
rake_tasks/node.rake |
Skips npm publishing when the version is already published (non-dry-run). |
.github/workflows/release.yml |
Adds explicit tag creation, PyPI skip-existing, and rerun behavior adjustments. |
|
Code review by qodo was updated up to the latest commit 92a9dbf |
CI Feedback 🧐(Feedback updated until commit 92a9dbf)A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
The primary failure pattern for releases recently is when one language fails to publish for some reason, the rest of the flow can't continue and everything needs to be processed manually.
This will allow us to click "Rerun failed jobs" and it shouldn't break anything.
💥 What does this PR do?
skip-existing🔧 Implementation Notes
--skip-duplicate🤖 AI assistance
💡 Additional Considerations
🔄 Types of changes