ci: status check 이름을 Go 버전과 분리 + 액션 버전업 - #44
Merged
Merged
Conversation
Job had no explicit name, so GitHub derived the check name from the job id plus matrix values (`test (1.26, ubuntu-latest)`). Branch protection matches contexts by exact string, so every Go version bump renamed the checks and left the required contexts stale — and a required context that is never reported blocks the PR silently as "Expected", rather than failing. Drop go-version from the matrix and read it from go.mod instead, so the check names become `test (ubuntu-latest)` / `test (macos-latest)` and no longer track the toolchain version. go.mod already pins go 1.26, so the Go version in CI is unchanged. Also move checkout ahead of setup-go, which go-version-file requires, add fail-fast: false so one platform failing no longer cancels the other before its logs are available, and bump checkout v4 -> v7 and setup-go v5 -> v7. Required status checks must be updated to the new names after this merges, otherwise every later PR stays pending. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
배경
PR #43이 "Pending" 상태에서 무기한 막혀 있었습니다. branch protection이 요구하는 status check 이름과 실제 리포트되는 이름이 어긋난 것이 원인이었습니다.
job에
name:이 없어서 GitHub이 check 이름을 job id + matrix 값으로 자동 생성합니다. matrix가go-version→os순이라test (1.26, ubuntu-latest)가 됩니다. branch protection은 이 문자열을 정확히 일치시키는 방식으로만 동작하고 와일드카드를 지원하지 않아서, Go 버전을 올릴 때마다 required context가 stale해집니다. 게다가 요구된 context가 리포트되지 않으면 실패가 아니라 "Expected — Waiting for status to be reported"로 조용히 영구 대기합니다.변경 사항
go-version제거,go-version-file: go.mod사용 — check 이름이test (ubuntu-latest)/test (macos-latest)가 되어 툴체인 버전과 무관해집니다.go.mod에 이미go 1.26이 있어 CI에서 쓰는 Go 버전은 그대로입니다.checkout을setup-go보다 먼저 실행 —go-version-file은 파일이 체크아웃된 뒤에만 읽을 수 있어서 필수입니다.fail-fast: false— feat: Upgrade Kiwi to v0.23.2 with new API bindings #43 실행 때 macOS 실패로 ubuntu job이 cancelled 되어 한쪽 로그만 볼 수 있었습니다.actions/checkoutv4 → v7,actions/setup-gov5 → v7. 두 액션 모두 러너 v2.327.1 이상을 요구하는데 GitHub-hosted 러너는 충족합니다.aggregate gate job(
ci-ok하나만 required로 거는 패턴)도 검토했지만 채택하지 않았습니다.needs:목록을 사람이 관리해야 해서 나중에 job을 추가하고 넣는 걸 잊으면 게이트가 초록인 채로 커버리지가 조용히 새기 때문입니다. job이 늘어나 required 목록 관리가 부담이 되면 그때 재검토하는 게 낫다고 봤습니다.이 PR은 자기 자신을 정상 경로로 머지할 수 없습니다. CI가 새 이름으로 리포트되는데 현재 required는
test (1.26, ...)라서 stale context에 걸립니다.3번을 빠뜨리면 required가
test (1.26, ...)로 남아 이후 모든 PR이 영구 pending에 걸립니다.확인 사항
test (ubuntu-latest)/test (macos-latest)로 리포트되는지go.mod의 1.26과 일치하는지 (setup-go v6의 toolchain 처리 변경 영향 확인)🤖 Generated with Claude Code