Skip to content

chore(ci): merge queue 방출을 자동 처리한다 — 조용한 방출은 한 번 재투입, CI 실패는 실패 job 링크 코멘트 #1892

Closed

Description

@OnlyReadOneBook

작업 유형

maintenance — CI·빌드·의존성·저장소 운영 유지보수

주 담당 모듈

platform — Android 앱·CI·빌드·릴리스·저장소 운영

개요

merge queue(#1477)는 PR 을 투입한 뒤의 결과가 «보러 가야만» 보인다. 방출은 두 갈래인데 둘 다 사람이 PR 을 붙잡고 있어야 처리된다.

  • 조용한 방출 — 앞 건이 머지되며 base 가 움직이면 실패 흔적 없이 큐에서 빠진다(0830 실측 refactor(afternote): 저장 실패 변환을 Result 확장 관례로 통일 (#1508) #1509: mergeQueueEntry null · mergeStateStatus=CLEAN · merge_group run 전량 success). 처방은 재투입뿐이라 MERGED 를 볼 때까지 지켜봐야 했다.
  • merge group CI 실패 — PR 화면엔 «removed from the merge queue» 만 남고, 실패한 job 은 Actions 탭에서 event:merge_group 으로 따로 찾아야 한다.

pull_request_target 의 dequeued 이벤트로 둘을 자동 처리해 «투입하고 끝» 으로 만든다.

작업 범위:

  • .github/workflows/merge-queue-dequeue.yml — pull_request_target: types: [dequeued]. default branch 의 스크립트만 실행하고 PR 코드는 체크아웃하지 않는다(stack-integrity-notify.yml 과 같은 경계).
  • .github/scripts/handle-merge-queue-dequeue.mjs — 판정 순서: ① 그 PR 의 큐 브랜치(gh-readonly-queue/<base>/pr-<N>-*) merge_group run 에 실패·타임아웃 job 이 있으면 CI 실패 → 실패 job 링크를 PR 코멘트로 남기고 재투입하지 않는다. ② payload reason 이 MANUAL·ALREADY_MERGED·MERGE 면 아무것도 하지 않는다. ③ 그 밖(조용한 방출)이면 enqueuePullRequest 로 같은 head SHA 당 한 번만 재투입한다 — 마커 코멘트로 횟수를 세고, 같은 SHA 의 두 번째 방출은 재투입 없이 사유만 코멘트한다(0902 맹목 재투입 사고의 «한 번까지» 규칙).
  • handle-merge-queue-dequeue.test.mjs — 위 판정표를 잠근다. unit-test.yml 의 node --test .github/scripts/*.test.mjs 글롭에 자동 편입.

완료 조건:

  1. 조용한 방출 → 재투입 1회. 같은 head SHA 의 두 번째 방출 → 재투입 없이 코멘트.
  2. CI 실패·타임아웃 → 실패 job 링크 코멘트, 재투입 없음.
  3. MANUAL·ALREADY_MERGED·MERGE → 무동작.
  4. 판정이 정책 테스트로 고정되고 node --test .github/scripts/*.test.mjs·scripts/repository-quality.sh(actionlint) 통과.

자식 이슈

없음

참고

Activity

  1. added
    maintenanceCI·빌드·의존성·저장소 운영 유지보수
    area:platformCI·빌드·릴리스·저장소 운영 영역
    on Sep 4, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 4, 2026
  3. added a commit that references this issue on Sep 4, 2026
  4. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:platformCI·빌드·릴리스·저장소 운영 영역maintenanceCI·빌드·의존성·저장소 운영 유지보수

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions