[fix]: scope build-and-test concurrency by event to avoid cancellations#1435
Conversation
Release branch commits trigger build-and-test from both the push (release/**) and pull_request events, which shared one concurrency group, so cancel-in-progress made them cancel each other. A cancelled run left the required build-and-test check unsatisfied and blocked the release PR merge. Add github.event_name to the concurrency group so push and PR runs no longer cancel each other; per-event cancellation of superseded runs is preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for sendbird-uikit-react ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
이거 혹시 release branch에서 CHANGELOG_DRAFT의 내용을 CHANGELOG로 옮기고 commit/push하는 거 때문에 발생하는 이슈인가요? release branch build-test가 성공 -> merge to main -> CHANGELOG Update -> commit/push -> npm publish |
Replaces the earlier concurrency-key split. release-branch commits (e.g. the CHANGELOG date finalize step in release-workflow.yml) were firing build-and-test from both push:release/** and pull_request:synchronize, and the two runs cancelled each other. Removing release/** from the push triggers leaves only the pull_request:synchronize path, so each commit produces exactly one build-and-test run on the release PR. The release-workflow.yml stays unchanged — the CHANGELOG commit is still made on the release branch so the merge into main is atomic, and gh pr checks --watch sees the single synchronize-triggered run. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
원인 분석 감사합니다! 다만 release-workflow reorder 방향엔 두 가지 우려가 있어 다른 접근으로 갔는데 의견 부탁드려요.
대신 build-and-test의 trigger 자체에서 double-fire 원인을 제거했습니다. 이렇게 가도 될지 의견 부탁드립니다! |
CHANGELOG_DRAFT.md를 작성을 하는게, release tag 를 만드는 시점에 body를 채우는데 편의성을 제공 하는 용도 밖에는 없는거 같은데, 차라리 CHANGELOG_DRAFT.md를 제거을 하고 CHANGELOG.md를 Full 로 작성을 해서 release branch를 만들고, release tag를 만들때, 잘 추출해서 하는 방식으로 하는 방법도 나쁘진 않을거 같습니다. chat-js는 develop-v4가 default branch라서 main이 default branch인 uikit 하고는 조금 차이가 있어 보이네요. |
|
이전 문제 상황 정리: release branch에 commit push 시 두 이벤트가 동시 발화했습니다:
둘 다 같은 concurrency group( option A 적용 후:
CI 발화 시점 자체는 그대로 유지됩니다:
검증 빈틈은 없고, 중복 발화로 인한 cancel만 해결됩니다. |
이해 됬습니다. |
Summary
Release-branch commits trigger
build-and-testfrom both thepush(release/**) andpull_request(synchronize) events. Both shared the same concurrency group (build-and-test-<branch>), socancel-in-progress: truemade them cancel each other — one run endedcancelled, which left the requiredbuild-and-teststatus check unsatisfied and blocked the release PR merge (hit on the v3.18.0 attempt).Fix
Add
${{ github.event_name }}to the concurrency group so push-triggered and PR-triggered runs land in separate groups and no longer cancel each other. Per-event cancellation of superseded runs is preserved, so CI savings on rapid pushes are kept.🤖 Generated with Claude Code