Skip to content

ci: OIDC Trusted Publishing 워크플로 (crates.io + npm)#28

Merged
ictechgy merged 1 commit into
mainfrom
feature/oidc-trusted-publishing
Jun 13, 2026
Merged

ci: OIDC Trusted Publishing 워크플로 (crates.io + npm)#28
ictechgy merged 1 commit into
mainfrom
feature/oidc-trusted-publishing

Conversation

@ictechgy

Copy link
Copy Markdown
Owner

요약

저장된 토큰/passkey 없이 태그 push 시 자동 publish하는 OIDC trusted publishing 워크플로 2개.

  • publish-crates.yml: rust-lang/crates-io-auth-action@v1(OIDC→단기토큰) → cargo publish. macOS 전용 크레이트라 macos-14에서 verify 빌드(Linux 불가). id-token: write.
  • publish-npm.yml: setup-node + npm@latest(OIDC는 npm ≥11.5.1) → npm publish ./npm. install.js가 릴리스 바이너리를 받는 래퍼라 릴리스 에셋 대기 게이트 후 publish. provenance 자동. id-token: write.

설계 근거

  • 트리거 = 태그 push(v*). release: published는 release.yml이 GITHUB_TOKEN으로 릴리스를 만들어 downstream을 트리거 못 하므로 미사용.
  • run: 스텝은 env var 경유(인젝션 방지).
  • 등록 폼 "Workflow filename" = 각 파일명과 일치(publish-crates.yml / publish-npm.yml).

주의

  • Environment name을 trusted-publisher 폼에 넣었다면, 각 잡의 # environment: release 주석을 해제(동일 값)해야 OIDC 매칭됨. 비웠다면 그대로.
  • 이 워크플로는 다음 태그 push부터 동작(현재 0.7.0은 이미 publish됨).

🤖 Generated with Claude Code

저장된 토큰/passkey 없이 태그 push 시 자동 publish하도록 GitHub Actions OIDC
trusted publishing 워크플로 2개 추가. 다음 릴리스부터 cargo publish의 저장 토큰
(~/.cargo/credentials.toml)·npm passkey 수동 단계가 사라진다.

- publish-crates.yml: rust-lang/crates-io-auth-action@v1로 OIDC→단기토큰 교환 후
  cargo publish. macOS 전용 크레이트(IOKit FFI)라 verify 빌드가 Linux에서 실패하므로
  release.yml과 동일하게 macos-14에서 실행. id-token: write.
- publish-npm.yml: setup-node + npm@latest(OIDC는 npm>=11.5.1 요구) 후 npm publish ./npm.
  install.js가 GitHub Release 바이너리를 받는 래퍼라, 릴리스 에셋이 올라온 뒤 publish하도록
  대기 게이트 추가(설치 실패 윈도우 방지). provenance 자동. id-token: write.

둘 다 태그 push(v*)에 트리거(release: published는 GITHUB_TOKEN 생성 릴리스라 미발화).
run 스텝은 env var 경유로 인젝션 방지. 등록 폼의 "Workflow filename"은 각 파일명과 일치
(publish-crates.yml / publish-npm.yml). Environment name을 폼에 넣었다면 잡의 environment:
주석을 해제해야 OIDC 매칭됨.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ictechgy ictechgy merged commit 05e0a57 into main Jun 13, 2026
@ictechgy ictechgy deleted the feature/oidc-trusted-publishing branch June 13, 2026 10:41
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.

1 participant