Repository navigation
fix(ci): fork PR 체크를 막던 go-test checkout·arm64 러너·Windows Ruby 툴체인 - #202
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
This was referenced Sep 19, 2026
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.
개요
fork PR 의 CI 가
publish.yml때문에 막혀 있어 워크플로만 먼저 고칩니다.pull_request_target은 base 브랜치의 워크플로 정의로 실행되므로, PR 안에서publish.yml을 고쳐도 그 PR 자신의 체크에는 반영되지 않습니다. 그래서 main 에 선행으로 넣습니다.근거는 #171 의 run 35446217167 과 main push run 35445523447 입니다.
1.
go-test가 fork PR 에서 즉시 실패한다go-test는actions/checkout@v6에ref: PR head를 주면서 opt-in 이 빠져 있어, fork PR 5 개 플랫폼 전부가 3~6 초 만에 죽습니다.test/dotnet-test/jvm-test/changepacks는 이미 이 opt-in 을 갖고 있고,go-test만 누락된 상태였습니다. 같은 한 줄을 추가합니다. 이건 #171 과 무관하게 모든 fork PR 에 영향이 있습니다.2.
Go Test - linux-arm64는 구조상 통과할 수 없다main 에서도 이미 실패 중입니다 (push run 35445523447, job
#105903669392). 1 번을 고쳐 checkout 이 뚫리자 fork PR 쪽에서도 같은 실패가 드러났습니다.linux-arm64항목만 러너 아키텍처와 target 이 어긋나 있었습니다.runner: ubuntu-latest(amd64) 에서aarch64-unknown-linux-gnu로 크로스 빌드해libs/linux-arm64/에 복사go test는 amd64 로 네이티브 실행 → cgo 가#cgo linux,amd64 ... -L${SRCDIR}/libs/linux-amd64를 고름러너를
ubuntu-24.04-arm으로 바꿔 네이티브로 빌드·테스트합니다.jvm-test가 이미 쓰는 러너이고, 이제go-test의 5 개 항목 모두 러너 아키텍처 == target 입니다. 크로스가 사라졌으므로Install cross-compilation tools (Linux ARM64)스텝과CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER도go-test에서만 제거했습니다.go-build(배포용) 는 그대로 둡니다. 그쪽은.a만 크로스 빌드하고go test를 돌리지 않으므로 amd64 러너 + 크로스 툴체인이 맞습니다. 두 잡의 매트릭스가 똑같아 보여서 나중에 "통일" 하고 싶어질 수 있어 주석을 남겼습니다.3.
test잡에 Ruby 툴체인이 없어 Windows lint 가 깨진다bun run lint는cargo clippy --workspace --all-targets라서, 워크스페이스에packages/ruby가 들어오면rb-sys빌드 스크립트가 돌아갑니다. windows-latest 에는 Ruby 셋업이 없어서 러너 기본 Ruby(mingw-ucrt ABI) 헤더를 MSVC 타겟으로 bindgen 에 물리고, MinGW 전용 헤더에서 터집니다.Windows 는
mswin(MSVC 빌드 Ruby), 그 외는3.4로 셋업합니다. pyo3/maturin 이 MSVC Python 을 쓰기 때문에 한 번의 workspace-wide cargo 호출에서 ucrt Ruby(GNU 툴체인 요구)와는 공존할 수 없습니다.이 스텝은 #171 의 것과 바이트 단위로 동일해서, #171 이 머지될 때 충돌 없이 합쳐집니다.
영향
packages/ruby가 없으므로 clippy 대상은 그대로이고, Ruby 셋업 스텝만 추가로 실행됩니다.ruby-test잡 자체는packages/ruby가 main 에 들어온 뒤에야 의미가 있으므로 이 PR 에는 넣지 않았습니다. feat: Ruby 바인딩 추가 #171 이 가져옵니다.