Skip to content

fix(actions): serialize exact SBOM release publishing - #1977

Draft
seonghobae wants to merge 5 commits into
mainfrom
codex/preserve-release-sbom-runs
Draft

fix(actions): serialize exact SBOM release publishing#1977
seonghobae wants to merge 5 commits into
mainfrom
codex/preserve-release-sbom-runs

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

요약

  • 보호 브랜치 push와 release 게시의 concurrency 정책을 분리합니다.
  • 같은 release ID의 실행은 native queue로 직렬화하고 release 실행을 취소하지 않습니다.
  • pinned publish-sbom의 다른 workflow run artifact fallback과 부분 게시 성공 경로를 제거합니다.
  • 현재 checkout에서 생성한 SPDX·CycloneDX 파일을 모두 검증한 뒤 gh release upload --clobber 한 번으로 게시합니다.
  • live release ID, tag, commit을 게시 직전에 fail-closed로 재검증합니다.

검증

  • production commit 3fb6d23ab446bfda80f45731e52028444a4ec4e9: GITHUB_ACTIONS=true, -W error 전체 suite 2988 passed, 1 skipped (306.99초), JUnit 생성, 전후 HEAD·tracked diff 동일
  • 후속 concurrency contract: 90 passed, -Werror
  • executable cancel-in-progressfalse로 바꾸고 기존 표현식을 주석에 남긴 mutant: 거절 확인
  • git diff --check: 통과
  • upstream actionlint PR fix(review): add OpenCode Zen free fallback #654 head 644076a59742c2d1540ebd4686eab3c308f0e562 격리 빌드: 변경 workflow lint 통과

검증 경계와 남은 위험

  • native release queue의 상한은 100입니다. 상한을 넘은 실행 보존을 보장하지 않습니다.
  • live guard와 release upload는 원자적이지 않습니다. guard 뒤 tag 변경, release/asset 삭제, 로컬 파일 변경의 TOCTOU가 남습니다.
  • 이미 dependency snapshot 제출 단계에 들어간 오래된 push 실행이 최신 실행보다 늦게 완료되어 구형 snapshot을 latest로 만들 가능성은 해결하지 않습니다.
  • 저장소의 기존 고정 actionlint는 queue: max를 모르는 버전이므로 이 workflow에서 실패합니다. 이 실패를 숨기지 않으며, upstream PR fix(review): add OpenCode Zen free fallback #654 head 실험 통과를 기존 required lint gate 완료로 주장하지 않습니다.
  • 실제 release upload는 실행하지 않았습니다.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant