Repository navigation
ci: 배포 판정 코멘트를 릴리스 PR 범위 산출로 대체한다 [base: develop] - #1074
Merged
Merged
Conversation
deployment-decision.yml 은 develop 머지마다 머지된(=닫힌) PR 에 판정을 코멘트했다. 최근 머지 PR 16건의 판정이 전부 `QA 배포 권장 / high` 로 같아 신호가 상수였고, 8/24 하루 봇 코멘트 49건 중 31건이 이 워크플로였다. 판정이 고정되는 원인은 평가 기준이 이 레포 구조에서 항상 참이기 때문이다. HIGH_RISK_PATHS 의 `(data|network|api)/` 와 `build.gradle.kts` 는 멀티모듈 구성상 거의 모든 PR 이 지나고, high 로 분기하면 decision 이 `deploy` 로 고정된다. `hold` 로 갈 수 있는 실질 경로는 변경 파일이 전부 문서·테스트인 경우뿐이다. 실제 배포 시점은 릴리스 PR(develop -> main)을 여는 사람이 정하고 있었다. release-distribution 의 workflow_dispatch 실행은 8/3·8/4·8/23 3건뿐이고, 판정 코멘트가 31건 달린 8/24 에는 0건이다. 판정은 쓰이지 않았다. 실제로 쓰인 산출물은 포함 이슈 목록 하나다. #1025 본문이 그 값을 기준으로 쓰였다고 적고 있고, QA 포인트는 자동 생성분을 버리고 사람이 다시 썼다. 그 목록은 render-distribution-release-notes.sh 가 릴리스 노트로 렌더하는 필수 입력이라 비면 배포가 중단된다. 그래서 산출은 유지하고 시점만 옮긴다. - 트리거: develop 머지(closed) -> 릴리스 PR opened/reopened/synchronize - 산출: 머지된 PR 코멘트 -> 릴리스 PR 본문의 `## 포함 이슈` - `## QA 포인트` 는 비어 있을 때만 초안을 채우고 사람이 쓴 문장은 보존한다 (배포 게이트가 빈 섹션에서 실패하므로 자리는 항상 만든다) - 판정(decision/risk) 로직 제거 synchronize 를 포함해 head 가 움직일 때마다 다시 채우므로, #1025 가 리뷰어에게 남긴 "머지 직전 포함 이슈 목록 재대조" 가 필요 없어진다. 본문 편집은 코멘트와 달리 알림을 만들지 않는다. 이름이 내용과 어긋나지 않도록 함께 옮겼다. - deployment-decision.yml -> release-scope.yml - evaluate-deployment-decision.mjs -> render-release-scope.mjs - collect-deployment-decision-context.mjs -> collect-release-scope-context.mjs
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
변경 요약
deployment-decision.yml은 develop 머지마다 이미 닫힌 PR 에 배포 판정을 코멘트했다. 판정은 쓰이지 않고 코멘트만 쌓이므로, 실제로 쓰이는 산출물(포함 이슈 목록)만 남겨 릴리스 PR 본문으로 옮긴다.closed) → 릴리스 PRopened/reopened/synchronize(branches: [main])## 포함 이슈decision/risk) 로직 제거deployment-decision.yml→release-scope.yml,evaluate-deployment-decision.mjs→render-release-scope.mjs,collect-deployment-decision-context.mjs→collect-release-scope-context.mjs왜
판정이 상수였다. 최근 머지 PR 16건이 전부
QA 배포 권장 / 위험도 high다. 원인은 평가 기준이 이 레포 구조에서 항상 참이기 때문이다 —HIGH_RISK_PATHS의(data|network|api)/와build.gradle.kts는 멀티모듈 구성상 거의 모든 PR 이 지나고,high로 분기하면decision이deploy로 고정된다.hold로 갈 수 있는 실질 경로는 변경 파일이 전부 문서·테스트인 경우뿐이다.그 판정은 쓰이지 않았다.
release-distribution의workflow_dispatch실행은 8/3·8/4·8/23 3건뿐이고, 판정 코멘트가 31건 달린 8/24 에는 0건이다. 배포 시점은 릴리스 PR 을 여는 사람이 정하고 있다.실제로 쓰인 건 포함 이슈 목록 하나다. #1025 본문이 그 값을 기준으로 썼다고 적고 있고, QA 포인트는 자동 생성분을 버리고 사람이 다시 썼다. 그 목록은
render-distribution-release-notes.sh가 릴리스 노트로 렌더하는 필수 입력이라 비면 배포가 중단된다 — 그래서 산출은 유지하고 시점만 옮겼다.8/24 하루 봇 코멘트 49건 중 31건이 이 워크플로였다.
검증
node --test .github/scripts/*.test.mjs— 99건 통과 (신규render-release-scope.test.mjs9건 포함).실 API end-to-end 실측 — 릴리스 PR #1025 의 실제 본문과, 마지막 성공 배포(run 32728267120, 8/24 12:39) 이후 develop 에 머지된 PR 5건을 입력으로 파이프라인을 돌렸다.
- #506 / #618 / #702 / #725 / #923으로 교체extract_sectionawk 파싱과 호환)alreadyDistributed: true, 누적 PR 0건으로 정확히 판정collect-release-scope-context.mjs를 실 토큰으로 #1025 에 직접 돌린 결과도 위와 일치한다.시각 검증 — 워크플로·스크립트·README 만 바뀌어 Compose 렌더 변경이 없다. screenshot baseline 사이클 skip.
리뷰어에게
## QA 포인트는 비어 있을 때만 구성 PR 본문에서 모은 초안으로 채우고, 사람이 쓴 문장이 있으면 건드리지 않는다. 배포 게이트가 빈 섹션에서exit 1하므로 자리는 항상 만든다.synchronize를 포함해 head 가 움직일 때마다 다시 채운다. release: develop 누적 145커밋을 main 릴리스 후보로 반영 [base: main] #1025 가 리뷰어에게 남긴 "머지 직전 포함 이슈 목록을 한 번 더 대조해 주세요" 가 구조적으로 사라진다. 본문 편집은 코멘트와 달리 알림을 만들지 않는다.release-scope.yml은actions/checkout@v7·actions/github-script@v9태그를 쓴다. 나중에 머지되는 쪽이 develop 를 병합하면서 맞추면 된다.