Skip to content

ci(merge-queue): 큐 투입을 사람 토큰으로 해 merge_group CI 가 돌게 한다 (#2254) - #2255

Merged
OnlyReadOneBook merged 3 commits into
developfrom
1hyok/nifty-carson-c0c0uq
Oct 5, 2026
Merged

OnlyReadOneBook merged 3 commits into
developfrom
1hyok/nifty-carson-c0c0uq

Conversation

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator

핵심 파일:

  • .github/workflows/viewed-auto-merge.yml: auto-merge 예약·큐 투입 토큰을 MERGE_QUEUE_TOKEN 으로 바꿈
  • .github/workflows/merge-queue-requeue.yml: 새 파일. 사람 토큰으로 재투입하는 workflow_dispatch 워크플로
  • .github/scripts/handle-merge-queue-dequeue.mjs: 방출 처리는 판정·마커까지만 하고 재투입은 dispatch 로 넘김
  • .github/workflows/merge-queue-dequeue.yml: dispatch 권한(actions: write)과 DEFAULT_BRANCH 추가

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • GITHUB_TOKEN 으로 큐에 넣거나 auto-merge 를 예약하면 GitHub 이 그 이벤트로 워크플로를 띄우지 않아 merge group 에 체크가 하나도 생기지 않습니다. 10/05 refactor(afternote): 미디어 URL 빈 값 정규화를 입구로 모은다 (#2207) #2208 이 그렇게 60분 동안 큐 맨 앞을 막았고, 뒤의 fix(core): 비밀번호 불일치 시 세션 유지 (#2222) #2229·fix(core): 로그아웃이 취소돼도 로컬 세션 정리를 끝낸다 (#2243) #2244 는 초록이 된 뒤에도 기다리다 처음부터 다시 검증했습니다. 같은 날 본인 계정으로 넣은 PR 4건은 17~20분 만에 머지됐습니다(ci(merge-queue): GITHUB_TOKEN 으로 큐에 넣은 PR 은 merge_group CI 가 돌지 않아 60분 막힌다 #2254 에 시각표).
  • viewed-auto-merge.yml: 예약을 secrets.MERGE_QUEUE_TOKEN 으로 합니다. 시크릿이 없으면 GITHUB_TOKEN 으로 대신 넣지 않고 경고만 남깁니다. 쓰기를 더 하지 않으므로 job 권한을 contents: read 로 줄였습니다.
  • merge-queue-dequeue.yml: pull_request_target 브리지라 시크릿을 쓰지 않는 불변식(create-ci-config.test.mjs)은 그대로 둡니다. 판정과 마커 코멘트는 지금처럼 여기서 하고, 투입만 merge-queue-requeue.yml 에 dispatch 합니다. workflow_dispatch 는 GITHUB_TOKEN 으로 보내도 실행되는 예외입니다.
  • merge-queue-requeue.yml: dispatch 를 받아 live 상태를 다시 보고, 판정한 head 그대로 열려 있고 큐 밖이며 스택 위쪽이 아닐 때만 MERGE_QUEUE_TOKEN 으로 넣습니다. 투입 방식(스택은 merge-async, 나머지는 GraphQL)은 기존 코드를 performRequeue 로 옮겨 그대로 씁니다. 시크릿이 없으면 직접 투입 명령을 코멘트로 남기고 job 을 red 로 끝냅니다.
  • handleDequeue 는 requeue 위임을 받으면 그것을 부르고, 없으면 종전처럼 직접 넣습니다. 기존 재투입 테스트는 그대로 통과합니다.

검증(로컬):

  • node --test .github/scripts/*.test.mjs 811건 통과.
  • 변이 확인: handleDequeue 가 위임을 무시하게 바꾸면 새 위임 테스트가, GH_TOKEN 을 github.token 으로 되돌리면 자동 머지 워크플로 정책 테스트가 실패합니다.
  • 세 워크플로 YAML 파싱 확인.

머지 전 필요: 저장소 Actions 시크릿 MERGE_QUEUE_TOKEN (1hyok 의 fine-grained PAT, 이 저장소 한정, Contents·Pull requests 쓰기). 없으면 자동 머지 예약이 멈추고 재투입은 안내 코멘트로 바뀝니다.

🧪 CI Test Plan

{
  "androidTest": {
    "mode": "none",
    "reason": "변경은 .github/workflows 와 .github/scripts 의 큐 투입 토큰·재투입 경로뿐이고 앱 코드·androidTest·빌드 스크립트를 건드리지 않는다. 스크립트 단위 테스트(node --test)가 회귀를 가드한다.",
    "tests": []
  }
}

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

화면 변경 없음.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • 재투입 마커 코멘트 문구는 "재투입했다" 그대로입니다. 실제 투입은 몇 초 뒤 requeue 워크플로가 합니다.

Generated by Claude Code

GITHUB_TOKEN 으로 넣은 큐 항목은 merge_group CI 를 띄우지 못해 큐 맨 앞을 60분 붙잡고
CI_TIMEOUT 으로 빠진다. 자동 머지 예약은 MERGE_QUEUE_TOKEN 으로 하고, 방출 처리의 재투입은
시크릿을 쓰는 workflow_dispatch 워크플로로 넘긴다. 시크릿이 없으면 GITHUB_TOKEN 으로 넣지 않는다.
@github-actions github-actions Bot added the sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

형제 충돌이 해소됐다 — 지금은 이 PR 과 같은 파일을 서로 다르게 고친 열린 PR 이 없다 (#1750).
다시 생기면 이 코멘트를 현재 상태로 고쳐 쓴다.

# Conflicts:
#	.github/scripts/find-viewed-auto-merge-targets.test.mjs
@OnlyReadOneBook
OnlyReadOneBook marked this pull request as ready for review October 5, 2026 05:38
@github-actions
github-actions Bot requested a review from Sadturtleman October 5, 2026 05:39
@github-actions github-actions Bot added conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 and removed sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 labels Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

이 PR 은 develop 와 충돌 상태이고, 그래서 CI 가 돌지 않는다.

pull_request 워크플로는 base 와 head 를 합친 가상 머지 커밋(refs/pull/<N>/merge)에서
실행되는데, 충돌이면 GitHub 이 그 ref 를 만들지 못해 워크플로가 트리거조차 되지 않는다.
체크가 실패하는 것이 아니라 아예 생성되지 않으므로, 새 커밋을 올려도 no checks reported
인 채 최신 커밋이 한 번도 검증되지 않은 상태로 남는다 (#1028).

develop 를 병합해 충돌을 풀면 검증이 다시 돈다. 해소되면 이 라벨은 자동으로 떨어진다.

@github-actions github-actions Bot removed the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Oct 5, 2026
@OnlyReadOneBook
OnlyReadOneBook merged commit a6394ef into develop Oct 5, 2026
21 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the 1hyok/nifty-carson-c0c0uq branch October 5, 2026 05:47
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.

ci(merge-queue): GITHUB_TOKEN 으로 큐에 넣은 PR 은 merge_group CI 가 돌지 않아 60분 막힌다

1 participant