From 4874b6875bae72370e8bdc900a348548f70fde31 Mon Sep 17 00:00:00 2001 From: Jang Date: Wed, 9 Sep 2026 19:42:24 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=A0=EA=B8=88=20=EA=B2=80=EC=82=AC=EB=A5=BC=20PR=20?= =?UTF-8?q?=ED=97=A4=EB=93=9C=20=EC=BB=A4=EB=B0=8B=EA=B9=8C=EC=A7=80?= =?UTF-8?q?=EB=A1=9C=20=EC=A2=81=ED=9E=8C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pull_request 체크아웃의 HEAD 는 base 와 미리 합쳐본 머지 커밋이다. 그걸 끝점으로 쓰면 PR 이 열려 있는 동안 main 에 들어온 테스트까지 이 PR 이 고친 것으로 잡힌다. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01WU6a447YMHF72RTcCDW2nr --- .github/workflows/ci.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bda96a2..54559a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,13 @@ jobs: # 자기가 쓰는 픽스처를 못 고쳐서 "테스트 먼저 → 구현" 순서가 성립하지 않는다. - name: 테스트 명세 잠금 run: | - BASE=$(git merge-base origin/${{ github.base_ref }} HEAD) - FIRST=$(git rev-list ${BASE}..HEAD | tail -1) - CHANGED=$(git diff --name-only ${FIRST}..HEAD -- tests/ ':(exclude)tests/fixtures/') + # pull_request 체크아웃의 HEAD 는 브랜치 끝이 아니라 base 와 미리 합쳐본 + # 머지 커밋이다. HEAD 를 끝점으로 쓰면 PR 이 열려 있는 동안 main 에 들어온 + # 테스트까지 이 PR 이 고친 것으로 잡힌다. + HEAD_SHA=${{ github.event.pull_request.head.sha }} + BASE=$(git merge-base origin/${{ github.base_ref }} ${HEAD_SHA}) + FIRST=$(git rev-list ${BASE}..${HEAD_SHA} | tail -1) + CHANGED=$(git diff --name-only ${FIRST}..${HEAD_SHA} -- tests/ ':(exclude)tests/fixtures/') if [ -n "$CHANGED" ]; then echo "::error::첫 커밋 이후 테스트가 수정됨" echo "$CHANGED"