-
Notifications
You must be signed in to change notification settings - Fork 102
fix(ci): prevent release-drift and auto-release pipeline SIGPIPE/EPIP... - #1173
fix(ci): prevent release-drift and auto-release pipeline SIGPIPE/EPIP... #1173Adityakk9031 wants to merge 3 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 i️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughBoth release workflows now select the latest merged version tag using descending Git version sorting, stricter semver-like matching, and ChangesRelease tag selection
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/auto-release.yml:
- Line 53: Use the same clean semantic-version tag predicate as
desktop-release.yml in the tag-selection commands at
.github/workflows/auto-release.yml:53 and
.github/workflows/release-drift.yml:68. Replace the broad v* and v[0-9]* filters
so both jobs select only valid release tags and resolve an identical tag set.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
i️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: d10e5840-89f5-4159-bbb3-76976370e303
📒 Files selected for processing (2)
.github/workflows/auto-release.yml.github/workflows/release-drift.yml
Adityakk9031
commented
Jul 18, 2026
@FranDias have a look
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/auto-release.yml:
- Around line 53-54: The TAG assignment pipeline must remain successful when
grep finds no matching tags under pipefail and set -e. Update the filtering
stage in the tag-generation step to consume all input and return success for an
empty result, while preserving the existing semver filter and v0.0.0 fallback.
- Line 53: Update the TAG assignment in the auto-release workflow to restrict
candidate tags to those merged into origin/main before applying the existing
version sort and format filter. Preserve the current highest-version selection
and release tag pattern while excluding tags reachable only from other branches.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
i️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: d2af5a27-681c-486d-8a1c-95ee92d5ad4f
📒 Files selected for processing (2)
.github/workflows/auto-release.yml.github/workflows/release-drift.yml
Adityakk9031
commented
Jul 20, 2026
@FranDias have a look
Uh oh!
There was an error while loading. Please reload this page.
close:#990
Summary
Fixes a recurring failure where the
Release drift check(release-drift.yml) andAuto Release(auto-release.yml) workflows fail withgrep: write error: Broken pipe(exit code2/141).Root Cause
Both workflows utilized short-circuiting pipelines to get the latest tag:
release-drift.yml:git tag --merged origin/main --sort=-v:refname | grep -E '^v[0-9]' | head -n1auto-release.yml:git tag --sort=-v:refname | grep '^v' | head -1Under
set -o pipefail(explicitly or via GitHub Actions' default shell configuration),headexits immediately after printing the first line and closes its side of the pipe. When the precedinggreptries to write subsequent lines to the closed pipe, it receives aSIGPIPE/EPIPE.Because GitHub Actions runners often inherit
SIG_IGNonSIGPIPE,grepgets anEPIPEon its next write, printsgrep: write error: Broken pipe, and exits with code2. Underpipefail, this non-zero exit code propagates and fails the entire workflow job.Changes
grep+head: Switched to native git tag filtering using the--listparameter.awk 'NR==1': Usedawk 'NR==1'as the stream selector. Unlikehead,awk 'NR==1'reads the entire stdin stream to completion (but only prints the first line). This prevents the writer (git tag) from encountering a closed pipe and guarantees a successful0exit code.Summary by CodeRabbit