ci: 릴리즈 전략을 release-please로 전환 - #88
Conversation
- release-please-config.json / .release-please-manifest.json 추가 - release-please.yml: main 머지는 Release PR만 갱신, Release PR 머지 시 발행 + zip 첨부 + Chrome 스토어 발행 stub + Discord 알림 - release-beta.yml: 수동 dispatch 베타(prerelease) 발행 - 기존 라벨/PR-머지 트리거/Environment 게이트 방식의 release.yaml 제거 - pr-checks: release-please Release PR은 이슈 참조 가드 예외 처리 - README 배지에 release-please 버전 마커 추가 - CONTRIBUTING/CLAUDE.md 릴리즈 전략 문서 갱신 Closes #87
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthrough라벨 기반 릴리즈 트리거에서 Release-Please 기반 트렁크 릴리즈로 전환: Release PR은 커밋 타입에서 자동 생성, Release PR 머지 시에만 빌드·발행, 베타는 수동 dispatch로 배포, 기존 워크플로우 제거 및 문서 업데이트. ChangesRelease-Please 자동화 시스템 도입
Sequence Diagram(s)sequenceDiagram
participant Developer as 개발자
participant Main as Main 브랜치
participant RPJob as release-please 잡
participant PublishJob as publish 잡
participant GH as GitHub Release
participant Store as Chrome Web Store
participant Discord as Discord 웹훅
Developer->>Main: feature 커밋 (Conventional Commits)
Main->>RPJob: push 트리거
RPJob->>RPJob: Release PR 생성 (버전/CHANGELOG 자동)
Developer->>RPJob: Release PR 검토 & 머지
RPJob->>PublishJob: release_created=true 신호
PublishJob->>PublishJob: npm ci & build
PublishJob->>PublishJob: dist → zip 압축
PublishJob->>GH: Release 생성 (zip 첨부, 태그)
alt ENABLE_STORE_PUBLISH = true
PublishJob->>Store: stable 확장 게시
end
PublishJob->>Discord: 성공 임베드 전송
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 분 Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/release-beta.yml (1)
28-32: 💤 Low value베타 버전 계산 로직에서 sed 호환성을 확인해주세요.
Line 31에서
sed 's/-.*//'를 사용해 기존 버전 서픽스를 제거합니다. 이 명령은 Linux (gnu-sed)에서는 안정적이지만, 기본sed가 다를 수 있는 환경에서 호환성 문제가 발생할 수 있습니다.현재
runs-on: ubuntu-latest이므로 실제 실행 환경에서는 문제가 없지만, 명확성을 위해 다음과 같이 작성하는 것을 권장합니다:BASE=$(node -p "require('./package.json').version" | cut -d'-' -f1)또는 순수 Node.js로:
BASE=$(node -p "require('./package.json').version.replace(/-.*/, '')")현재 형태도 작동하므로 선택 사항입니다.
🤖 Prompt for 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. In @.github/workflows/release-beta.yml around lines 28 - 32, The current beta version calculation uses a sed expression in the "베타 버전 계산" step (id: ver) to strip the suffix: BASE=$(node -p "require('./package.json').version" | sed 's/-.*//'); replace that with a more portable command such as using cut: BASE=$(node -p "require('./package.json').version" | cut -d'-' -f1) or with a pure-Node expression: BASE=$(node -p "require('./package.json').version.replace(/-.*/, '')") so the suffix removal is compatible across environments.
🤖 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 `@CLAUDE.md`:
- Around line 129-131: Update the Discord release-notification description: in
CLAUDE.md replace the sentence claiming "Release notifications are sent inline
from `release.yaml`" with a statement that release notifications are sent
directly by `release-please.yml` (stable = green) and `release-beta.yml` (beta =
yellow), and keep the existing description that `discord-notify.yml` handles
issue/PR/CI notifications; reference the three workflow names
(`discord-notify.yml`, `release-please.yml`, `release-beta.yml`) so readers see
which workflows send which notifications.
---
Nitpick comments:
In @.github/workflows/release-beta.yml:
- Around line 28-32: The current beta version calculation uses a sed expression
in the "베타 버전 계산" step (id: ver) to strip the suffix: BASE=$(node -p
"require('./package.json').version" | sed 's/-.*//'); replace that with a more
portable command such as using cut: BASE=$(node -p
"require('./package.json').version" | cut -d'-' -f1) or with a pure-Node
expression: BASE=$(node -p "require('./package.json').version.replace(/-.*/,
'')") so the suffix removal is compatible across environments.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: b0dcbf07-0edf-4cbd-a51e-bce65e91a93b
📒 Files selected for processing (9)
.github/workflows/pr-checks.yml.github/workflows/release-beta.yml.github/workflows/release-please.yml.github/workflows/release.yaml.release-please-manifest.jsonCLAUDE.mdCONTRIBUTING.mdREADME.mdrelease-please-config.json
💤 Files with no reviewable changes (1)
- .github/workflows/release.yaml
CodeRabbit 리뷰 반영 (#88)
Closes #87
변경 내용
"main 머지 = 자동 릴리즈" 결합을 풀고 release-please 기반 트렁크 릴리즈로 전환.
vX.Y.Z-beta.N프리릴리즈 발행 (별도 베타 브랜치 없음)🔖라벨 불필요release.yaml(라벨/PR-머지 트리거/Environment 게이트) 제거pr-checks: release-please Release PR은 이슈 참조 가드 예외변경 유형
체크리스트