Skip to content

fix(ci): release bump 안전장치 추가 - #71

Merged
JeremyDev87 merged 1 commit into
masterfrom
codex/release-soft-landing
Apr 24, 2026
Merged

fix(ci): release bump 안전장치 추가#71
JeremyDev87 merged 1 commit into
masterfrom
codex/release-soft-landing

Conversation

@JeremyDev87

Copy link
Copy Markdown
Owner

배경

Kratos release에서 확인한 실패 패턴을 Maximus release 경로에 반영합니다. 핵심은 version bump PR 생성, candidate commit 검증, tag publish 사이를 명확히 분리하는 것입니다.

변경 사항

  • manual-release-bump.yml을 추가해 version-only bump branch/PR을 만들고 PR 생성 실패를 hard fail로 처리합니다.
  • release-candidate.yml을 추가해 tag 생성 전 exact candidate SHA를 검증합니다.
  • release helper와 bump script를 추가하고, 기존 release wiring validator와 CI path filter에 포함했습니다.
  • release plan의 dist-tag 판정을 공용 helper로 분리했습니다.

검증

  • git diff --check
  • actionlint .github/workflows/manual-release-bump.yml .github/workflows/release-candidate.yml .github/workflows/release.yml .github/workflows/dev.yml
  • node --test test/release-workflow-context.test.js test/github-action-wiring.test.js test/release-plan.test.js test/npm-error-classifiers.test.js test/bump-release-version.test.js
  • node ./scripts/validate-rust-release-wiring.mjs
  • cargo test --workspace
  • node ./scripts/run-packed-wrapper-smoke.mjs /tmp/maximus-release-pack/root-pack.json test/fixtures/clean-project

참고

  • 로컬 macOS에서 npm test는 기존 wrapper accepts execute-only installed runtime binaries 1건이 실패합니다. 이번 변경 파일과 무관한 기존 wrapper runtime 테스트이며, release candidate에 직접 필요한 packed wrapper smoke는 별도로 통과했습니다.
  • release tag 생성과 publish는 실행하지 않았습니다.

@JeremyDev87 JeremyDev87 added the ci label Apr 24, 2026
@JeremyDev87
JeremyDev87 marked this pull request as ready for review April 24, 2026 12:31
@JeremyDev87

Copy link
Copy Markdown
Owner Author

독립 fresh-session 리뷰 결과

  • Verdict: CHANGE_REQUEST
  • Severity Summary: Critical 1 / High 0 / Medium 1 / Low 0
  • Findings:
    • [Critical] .github/workflows/manual-release-bump.yml, .github/workflows/release-candidate.yml, .github/workflows/dev.yml, test/release-workflow-context.test.js: bump 적용 후 실행되는 테스트가 현재 package.json 버전이 아니라 하드코딩된 v0.1.0을 검증합니다. reviewer가 임시 복사본에서 node ./scripts/bump-release-version.mjs v0.1.1 후 release-plan/context 테스트를 실행했을 때 release tag v0.1.0 does not match package.json version v0.1.1로 실패했습니다. 수동 bump workflow의 npm test, bump branch의 dev wiring check, merge 후 release-candidate gate가 실제 다음 버전에서 실패할 수 있습니다.
    • [Medium] scripts/bump-release-version.mjs: direct-execution 판정이 symlink-normalized absolute path를 처리하지 못해 /tmp/.../scripts/bump-release-version.mjs 같은 absolute path 호출이 usage/error 없이 종료될 수 있습니다. GitHub workflow의 상대경로 호출은 영향이 작지만 operator/dispatcher가 absolute path를 쓰면 bump가 수행되지 않았는데 성공처럼 보일 수 있습니다.
  • Rationale: 실제 다음 버전 bump 경로에서 핵심 검증이 실패하는 재현 가능한 blocker가 있어 현재 상태로는 merge 승인할 수 없습니다.
  • Note: GitHub 정책/권한 때문에 official request-changes review를 제출할 수 없는 경우 이 PR comment가 동일한 verdict를 대체합니다.

@JeremyDev87
JeremyDev87 force-pushed the codex/release-soft-landing branch 6 times, most recently from 2a5c1d3 to 6e8ed27 Compare April 24, 2026 13:48
@JeremyDev87
JeremyDev87 force-pushed the codex/release-soft-landing branch from 6e8ed27 to 4f030a2 Compare April 24, 2026 13:52
@JeremyDev87

Copy link
Copy Markdown
Owner Author

독립 fresh-session 리뷰 결과

  • Verdict: APPROVE
  • Severity Summary: Critical 0 / High 0 / Medium 0 / Low 0
  • Findings: 없음
  • Rationale: 최신 head 4f030a22bea14cc2033704dbf224253b5a8c6c78 기준 CI가 모두 통과했고, release bump, release-candidate 검증, tag/commit handoff, package version gate, PR 생성 fail-closed 경로를 fresh-session 리뷰에서 확인했으며 Critical/High 회귀를 찾지 못했습니다.

@JeremyDev87 JeremyDev87 self-assigned this Apr 24, 2026
@JeremyDev87
JeremyDev87 merged commit da7a4df into master Apr 24, 2026
42 checks passed
@JeremyDev87
JeremyDev87 deleted the codex/release-soft-landing branch April 24, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant