在CircleCI中安装GitHub软件包

问题描述 投票:2回答:1

对于我的项目,我正在尝试从GitHub Packages安装(不发布!)一个npm软件包。它托管在组织中的私有存储库中。我已经制作了一个具有所需权限的个人访问令牌,可以从该存储库和组织中进行读取。所有这些works在本地通过以下步骤进行:

  • .npmrc文件中设置注册表:registry=https://npm.pkg.github.com/OWNER
  • 终端登录:npm login --registry=https://npm.pkg.github.com然后它将提示此:
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
  • Username是您的标准github用户名
  • [Token是具有正确权限创建的个人访问令牌
  • [Email可以是随机的

填写后,一切正常,我可以将packge以及正常npm注册表中托管的所有其他软件包一起安装。现在开始解决问题:我正在尝试在circleCI上复制相同内容,但似乎没有让我覆盖npm注册表。该项目在.npmrc所在的文件夹中包含package.json文件。这是圈子ci conf的一部分:

      - run:
          name: "Set NPM registry"
          command: npm config set registry https://npm.pkg.github.com/OWNER
      - run:
          name: "Authenticate with GitHub package registry"
          command: echo "//npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES}" > web_ui/frontend/.npmrc
      - run:
          name: "Install frontend dependencies"
          command: npm run deps-frontend

[GITHUB_PACKAGES只是存储在circleCI中的env变量。

现在错误消息告诉我以下内容:

npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"

我尝试使用谷歌搜索,但没有任何效果。

github circleci circleci-2.0 github-package-registry
1个回答
0
投票

您可以尝试在run步骤中移动pre步骤吗?像这样:

pre:
  - npm config set registry https://npm.pkg.github.com/OWNER
  - echo "//npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES}" > web_ui/frontend/.npmrc
  - npm run deps-frontend

另一种尝试是使用npm的其他版本。

© www.soinside.com 2019 - 2024. All rights reserved.