Auto: GitHub 操作未能找到 NPM_TOKEN

创建于 2021-02-22  ·  6评论  ·  资料来源: intuit/auto

我正在尝试从直接发布到 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
question released

所有6条评论

有关于发布到 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:

此页面是否有帮助?
0 / 5 - 0 等级