Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 2.34 KB

File metadata and controls

51 lines (37 loc) · 2.34 KB

릴리스와 자동 배포

이 저장소는 npm은 Changesets, Python은 release-please로 관리한다.

Node / npm 패키지

  • 위치: packages/*
  • 버전 관리: Changesets
  • 배포 workflow 파일: .github/workflows/release-npm.yml
  • 실제 publish 시점: Version Packages PR을 merge한 뒤 main에 push가 발생했을 때
  • 인증 방식: GitHub Actions가 repository secret NPM_TOKEN 으로 npm publish
  • 기본 규칙: 패키지 버전을 직접 손으로 올리지 말고 .changeset/*.md 파일을 추가한다.

흐름

  1. 기능 PR에서 .changeset/*.md 추가
  2. PR merge
  3. Changesets가 Version Packages PR 생성
  4. Version Packages PR merge
  5. GitHub Actions가 변경된 npm 패키지만 NPM_TOKEN 으로 publish
  6. 패키지별 CHANGELOG.md 는 Changesets가 자동 관리하고, npm 패키지용 GitHub Release 는 계속 만들지 않는다 (createGithubReleases: false 유지)

Python 패키지

  • 위치: python-packages/*
  • 버전 관리: release-please
  • 배포 workflow 파일: .github/workflows/release-python.yml
  • 실제 publish 시점: release-please가 release_created=true를 만든 run
  • 현재 상태: 실제 Python 패키지가 없어 scaffold only

npm token 운영 원칙

  • npm publish 는 repository secret NPM_TOKEN 을 사용한다.
  • NPM_TOKENgranular access token 으로 만들고, 가능하면 Packages and scopes 를 All Packages + Read and write 로 설정해 앞으로 추가될 npm 패키지까지 같은 CI 토큰으로 publish 가능하게 한다.
  • 계정에 2FA를 쓰는 경우, CI publish 를 위해 token 생성 시 npm publish 허용 설정을 함께 확인한다.
  • 새 패키지를 자동 publish 하려면 token 소유 계정이 그 패키지명을 첫 publish 할 수 있어야 하고, 이후에도 해당 패키지의 maintainer 권한을 유지해야 한다.
  • id-token: writeNPM_CONFIG_PROVENANCE=true 는 유지해서 token publish 에서도 provenance 생성을 시도한다.
  • PyPI 쪽은 계속 trusted publishing 우선이며 workflow filename 은 release-python.yml 이다.

Maintainer 확인 명령

npm install
npm run ci

GitHub repository secret

GitHub repository settings 에 아래 secret 을 저장해야 한다.

  • NPM_TOKEN: npm granular access token with publish/write permission for this repo's public packages