퍼블리셔 계정 설정
@ahmed-g-gad/apothem용 npmjs.com 신뢰할 수 있는 퍼블리셔와 GitHub 측 릴리스 사전 요구 사항을 구성합니다.
이 런북은 릴리스 표면의 퍼블리셔 측을 구성합니다. 배포 형태에는 레지스트리가
하나뿐입니다. npmjs.com의 스코프 지정 npm 패키지 @ahmed-g-gad/apothem로,
GitHub Release, Pages, CI, conformity 및 harness 워크플로가 모두 녹색이 된 후
수동으로 디스패치되는 publish-npm.yml 워크플로에 의해 게시됩니다. 다른 모든
아티팩트는 GitHub Release 페이지 자체에서 배포되며 외부 퍼블리셔 계정이 필요하지
않습니다.
신원 매핑
| 표면 | 계정 | 패키지 식별자 |
|---|---|---|
| GitHub | ahmed-g-gad | ahmed-g-gad/apothem |
| npm (npmjs.com) | ahmed-g-gad | @ahmed-g-gad/apothem |
GitHub 소유자는 향후 변경될 수 있습니다. 워크플로 및 설치 프로그램 로직은
플랫폼이 동적 해석을 허용하는 곳에서 github.repository,
github.repository_owner 또는 APOTHEM_GITHUB_REPOSITORY를 읽습니다.
사용자는 관리자 계정 이름이 아니라 패키지 이름을 설치하므로 레지스트리 패키지
식별자는 안정적으로 유지됩니다.
npm (npmjs.com)
-
ahmed-g-gad로https://www.npmjs.com/에 로그인합니다. -
계정에 2단계 인증을 활성화합니다.
-
스코프 지정 패키지 이름을 확인합니다.
npm view @ahmed-g-gad/apothem name404는 스코프 지정 패키지가 아직 게시되지 않았음을 의미합니다. 그 외의 다른 패키지 응답은 게시하기 전에 이 저장소 및 계정과 일치해야 합니다. -
UI에서 첫 번째 패키지 레코드가 필요한 경우 npm에서 패키지를 생성합니다. 이름은 스코프 지정 형태로 유지합니다:
@ahmed-g-gad/apothem. -
GitHub Actions에서
@ahmed-g-gad/apothem에 대한 신뢰할 수 있는 게시(Trusted Publishing)를 구성합니다.- GitHub 소유자:
ahmed-g-gad - 저장소:
apothem - 워크플로 파일 이름:
publish-npm.yml - 환경:
npmjs - 허용된 작업:
npm publish.
- GitHub 소유자:
-
GitHub에서
npmjs환경이ahmed-g-gad/apothem에 존재하고 배포에 수동 승인이 필요한지 확인합니다. -
npm 표면을 하나의 공개 레지스트리 패키지로 유지합니다: npmjs.com의
@ahmed-g-gad/apothem. -
릴리스 준비 상태를 확인합니다.
Release readiness bash scripts/release/check-release-ready.sh <release-tag> -
GitHub Actions 탭에서
tag=<release-tag>로Publish — npm(publish-npm.yml)을 실행하고npmjs환경 배포를 승인합니다. -
라이브 패키지를 확인합니다.
npm verification npm view @ahmed-g-gad/apothem version npx @ahmed-g-gad/apothem@<version> --version
NPM_TOKEN, 사용자 이름 또는 비밀번호 시크릿이 필요하지 않습니다. 워크플로는 Node
버전과 npm CLI의 OIDC 하한이 .github/workflows/publish-npm.yml 내에 고정된 상태로
npm Trusted Publishing(OIDC)을 통해 게시합니다. npmjs.com에 대해
npm publish --access public을 실행합니다. npm은 공개 GitHub Actions 워크플로에서
게시된 공개 패키지에 대해 출처(provenance)를 자동으로 생성합니다. PUT 중의
레지스트리 404는 npm 측 신뢰할 수 있는 퍼블리셔, 패키지 스코프 또는 계정 권한이
아직 정렬되지 않았음을 의미합니다. 워크플로를 다시 시도하기 전에 npm 패키지 설정을
수정하세요.
참고 자료: npm 신뢰할 수 있는 퍼블리셔, npm 출처 및 npm 스코프.
GitHub 측 릴리스 사전 요구 사항
나머지 릴리스 표면은 GitHub 네이티브이며 저장소 스코프의 GITHUB_TOKEN으로
인증합니다. 외부 계정은 관여하지 않습니다.
-
GitHub Release.
.github/workflows/release.yml은 버전 태그에서 실행되며 작업 로컬contents: write권한만 필요합니다. 태그를 지정하기 전에 워크플로 파일이main에 있는지 확인합니다. -
Pages 사용자 지정 도메인. 문서 사이트는
publish-static-site.yml을 통해 사용자 지정 도메인apothem.ahmedgad.com에 배포됩니다. 도메인, DNS 및 HTTPS 적용은 Pages 활성화 런북에 의해 설정됩니다. 확인합니다.Pages verification gh api repos/ahmed-g-gad/apothem/pages --jq '.cname, .https_enforced' curl -sSI https://apothem.ahmedgad.com/ | head -n 1 -
스크립트 설치 프로그램.
install.sh와install.ps1은 Pages 사이트에서 제공됩니다(https://apothem.ahmedgad.com/install.sh및https://apothem.ahmedgad.com/install.ps1). 동일한 Pages 배포에 의해 게시됩니다. 별도의 계정이나 토큰이 필요하지 않습니다.
검증 매트릭스
설정 후 각 퍼블리셔 표면은 해당 정식 검사에 응답합니다.
| 표면 | 검사 |
|---|---|
| npmjs.com | npm view @ahmed-g-gad/apothem version이 릴리스된 버전을 반환함 |
| GitHub Release | gh release view <release-tag> --json assets --jq '.assets[].name'이 sdist, wheel, SBOM, cosign 번들, 출처 및 플랫폼 아카이브를 나열함 |
| Pages | curl -sSI https://apothem.ahmedgad.com/이 사용자 지정 도메인에서 200을 반환함 |