Repository navigation
Conversation
cargo-binstall is now the latest release binary, checked against the SHA-256 digest GitHub records for the asset, instead of the installer script piped from the repository's main branch. Every cargo, Bun and Playwright cache key now also names what its contents depend on: the hosted image's OS release (ImageOS), the rustc build reported by setup-rust-toolchain, the Bun version setup-bun installed, and the browser builds the installed Playwright downloads. Cargo and Bun keys keep their lockfile hash; the Playwright key uses the browser builds in place of the bun.lock hash. CI keeps running the latest runner, tools and stable Rust, and the coverage run keeps Rust 1.99.1. Refs #683 (INF-19, INF-20) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 of 4 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
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.
Summary
감사 이슈 #683 의 INF-19 (CI 툴체인이 가변적) 와 INF-20 (캐시 키에 툴체인 차원이 없음) 중, 프로젝트의 CI 정책과 양립하는 부분을 구현합니다.
INF-19
install-wasm-pack앵커 스텝 (8개 잡이 공유)에서raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash를 없앴습니다. 대신gh api .../releases/latest로 최신 릴리스의cargo-binstall-x86_64-unknown-linux-musl.tgz를 받아 GitHub 가 기록한 에셋sha256digest 로sha256sum -c검증한 뒤~/.cargo/bin에 풉니다. (Bun 을 받는native-consumer잡과 같은 방식입니다.) 이제 main 브랜치의 셸 스크립트를 그대로 실행하지 않고, 체크섬을 확인한 릴리스 바이너리만 실행합니다. 이 러너 (Linux-X64) 가 아니면 바로 실패합니다.jetli/wasm-pack-action@v0.4.0은 이미 사용하지 않습니다 (cargo-binstall 로 최신 stable wasm-pack 을 설치하고 crates.io 최신 버전과 일치하는지 검증).ubuntu-latest), 툴 버전 (latest/stable), cargo-binstall 을 고정된 릴리스로 핀하라는 부분은 "CI 는 항상 최신 릴리스를 쓴다"는 정책과 정면으로 충돌합니다. 그래서 버전은 계속 최신을 따르되, 가변성의 위험 (무엇이 실행됐는지 모름, 검증 없는 원격 스크립트) 은 체크섬 검증과 아래 INF-20 의 캐시 키로 줄였습니다. 액션 SHA 고정은 별도 PR ci: pin every GitHub Action to a full commit SHA #979 (INF-18) 에서 다룹니다.INF-20
cargo / Bun / Playwright 캐시 키 (8개 잡, 21개 키)에 내용물이 실제로 의존하는 차원을 넣었습니다.
record-runner-image가ImageOS(예:ubuntu24) 를RUNNER_IMAGE로 기록하고 모든 키에 넣습니다.ubuntu-latest가 새 Ubuntu 릴리스로 넘어가면 캐시가 갈립니다. 매주 바뀌는ImageVersion은 넣지 않았습니다. 그걸 넣으면 내용물이 그대로인데도 캐시가 매주 무효화되기 때문입니다.setup-rust-toolchain에id: rust를 주고 cargo 키에steps.rust.outputs.cachekey(rustc 커밋 날짜+해시) 를 넣었습니다.setup-bun에id: bun을 주고 Bun 키에steps.bun.outputs.bun-version을 넣었습니다.record-playwright-revisions가bunx playwright install --dry-run의 설치 위치에서 브라우저 빌드 (예:chromium-1243_chromium_headless_shell-1243_firefox-1543_...) 를 읽어 키에 넣습니다. 그래서 키가bun.lock전체 해시 대신 실제 브라우저 리비전을 따라갑니다. Playwright 와 무관한 의존성 변경으로 캐시가 무효화되지 않습니다.target/은 rustc 가 채움) 키에 넣지 않았습니다.publish잡의 커버리지 툴체인 1.99.1 은 워크플로 안의 상수라 키에 따로 넣지 않았습니다. cargo 는 rustc 가 바뀌면 fingerprint 로 다시 빌드합니다.다른 PR 과의 겹침
id:를 추가한 줄 바로 위의uses:줄을 ci: pin every GitHub Action to a full commit SHA #979 가 바꾸므로git merge-tree로 확인하면publish.yml에서 충돌합니다. 나중에 머지되는 쪽을 rebase 해야 하고, 해결은 기계적입니다:uses:는 ci: pin every GitHub Action to a full commit SHA #979 의 SHA 고정 줄을, 바로 다음 줄의id:와 키는 이 PR 의 내용을 씁니다.publish잡에 스텝을 추가하지만 이 PR 이 바꾼 줄과는 겹치지 않습니다. docs: refresh package READMEs and agent metadata #911 은 워크플로를 건드리지 않습니다.Test plan
actionlint1.7.12: 새 오류 없음 (기존에도 있던windows-11-vs2026-arm러너 라벨 경고만 출력). YAML 앵커/별칭도 정상 파싱cargo-binstall-x86_64-unknown-linux-musl.tgz(v1.27.0) 를 받아sha256sum이 API 의 digest 와 같은지, tarball 루트에cargo-binstall하나만 있는지 확인sed | sort | paste) 을--dry-run출력 형식으로 확인git diff --stat:publish.yml한 파일, 줄 끝 형식 유지Refs #683
🤖 Generated with Claude Code