我正在尝试从直接发布到 npm(效果很好)切换到使用具有组织范围包名称的 GitHub 包。
我在package.json
更改了我的包名称,添加了必要的publishConfig
例如
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
并根据文档将我的操作步骤更改为使用NODE_AUTH_TOKEN
而不是NPM_TOKEN
,但是当我合并一个分支并触发该操作时,我收到以下警告并且该包从未发布(尽管版本标签和更改日志已更新,因此令人讨厌的是它不会标记为失败的运行):
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
设置在我在 GitHub 上的存储库 Secrets 中。
这是操作设置:
name: Publish
on:
push:
branches: [main]
jobs:
release:
runs-on: ubuntu-latest
# this check needs to be in place to prevent a publish loop with auto and github actions
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout<strong i="19">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare repository
run: git fetch --unshallow --tags
- name: Use Node.js 12.x
uses: actions/setup-node<strong i="20">@v1</strong>
with:
node-version: 12.x
- name: Cache node modules
uses: actions/cache<strong i="21">@v2</strong>
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
restore-keys: |
node-modules-${{ hashFiles('package-lock.json') }}
- name: Create release
env
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm ci
npm run build
npm run release
有关于发布到 GitHub 包注册表的额外说明。
您需要使用 GitHub 令牌进行发布,因为您不再发布到 NPM
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@hipstersmoothie非常感谢您的帮助。 我看到文档自我最初设置 Action 以来已经更新,但似乎它们仍未包含所有步骤。 我还必须将这些行添加到我的 Node 设置中(在您的演示仓库中注意到):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
我还看到 NPM_TOKEN 警告消息。 将它重新添加为环境秘密似乎已经解决了这个问题,即
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
最后,通过所有这些设置,我能够合并一个 PR 并让 Auto 完成它的事情,发布一个新包并更新版本/变更日志 🎉
然而,我在摆弄时禁用了分支保护; 重新启用它会导致一个新的错误,每次 Auto 尝试提交版本更新都会失败。 我通过添加一个新的个人 GitHub 令牌并将其作为秘密引用来解决这个问题,而不是默认的GITHUB_SECRET
,如下所示:
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
似乎不是最好的解决方案,所以如果有人知道更好的解决方案,我会很感激。 或者,我认为文档可能需要在这里更新: https: //intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
我已经做了一个 PR 来改进这些文档。 你介意回顾一下#1828吗?
已审核,有几个小建议,但看起来都不错 ☺再次感谢您的帮助
:rocket: 问题已在v10.16.8
:rocket: