|
6 | 6 | # · 或 Classic Token:类型必须选 Automation(勿用需 OTP 的 Publish 类令牌)。 |
7 | 7 | # 权限须覆盖 @opensec;GitHub Secret 名仍为 NPM_TOKEN。 |
8 | 8 | # 3. git tag v2.0.0 && git push origin v2.0.0 |
9 | | -# 将触发:构建 → 校验版本 → 打 GitHub Release 并上传 tgz → npm publish。 |
| 9 | +# 将触发:构建 → 校验版本 → 打 GitHub Release 并上传 tgz → npm publish(npmjs)+ |
| 10 | +# GitHub Packages(仓库 Settings → Packages 可见;包名为 @<仓库所有者>/secbot,与 @opensec/secbot 并存)。 |
| 11 | +# 工作流 permissions 需含 packages: write(已配置);使用 GITHUB_TOKEN 认证 npm.pkg.github.com。 |
10 | 12 |
|
11 | 13 | name: Release |
12 | 14 |
|
|
18 | 20 |
|
19 | 21 | permissions: |
20 | 22 | contents: write |
| 23 | + packages: write |
21 | 24 |
|
22 | 25 | jobs: |
23 | 26 | build: |
@@ -106,3 +109,36 @@ jobs: |
106 | 109 | run: npm publish --access public |
107 | 110 | env: |
108 | 111 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |
| 112 | + |
| 113 | + publish-github-packages: |
| 114 | + name: Publish to GitHub Packages |
| 115 | + needs: build |
| 116 | + runs-on: ubuntu-latest |
| 117 | + if: startsWith(github.ref, 'refs/tags/v') |
| 118 | + steps: |
| 119 | + - uses: actions/checkout@v4 |
| 120 | + |
| 121 | + # GitHub Packages 要求作用域小写,与 apply-github-packages-name.js 中 pkg.name 一致 |
| 122 | + - name: Normalize npm scope owner (lowercase) |
| 123 | + run: echo "NPM_SCOPE_OWNER=$(echo '${{ github.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV |
| 124 | + |
| 125 | + - name: Set up Node.js for GitHub Packages |
| 126 | + uses: actions/setup-node@v4 |
| 127 | + with: |
| 128 | + node-version: '24' |
| 129 | + registry-url: 'https://npm.pkg.github.com' |
| 130 | + scope: '${{ env.NPM_SCOPE_OWNER }}' |
| 131 | + cache: 'npm' |
| 132 | + |
| 133 | + - name: Install dependencies |
| 134 | + run: npm ci |
| 135 | + |
| 136 | + - name: Apply scoped name for GitHub Packages registry |
| 137 | + run: node scripts/apply-github-packages-name.js |
| 138 | + env: |
| 139 | + GITHUB_REPOSITORY_OWNER: ${{ env.NPM_SCOPE_OWNER }} |
| 140 | + |
| 141 | + - name: Publish to GitHub Packages |
| 142 | + run: npm publish |
| 143 | + env: |
| 144 | + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
0 commit comments