未授权使用yarn.lock在Github Actions上使用yarn安装私有Github软件包

时间:2020-05-15 10:24:34

标签: yarnpkg github-actions github-package-registry

许多类似的问题已经浮出水面

但是,我们的问题似乎有所不同,因为:

  • yarn install在本地计算机上运行良好
  • 问题仅在使用Github Actions时出现
  • 如果我们删除yarn install
  • yarn.lock在GH Actions上成功

以前有人遇到过吗?具体来说,它不能与yarn.lock文件一起使用吗?

如果有关系,请进行以下设置:

build.yml

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '10.x'
        registry-url: 'https://npm.pkg.github.com'
    - name: Install
      run: yarn install
      env:
        # GITHUB_TOKEN can't access packages hosted in private repos,
        # even within the same organisation
        NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
    - name: Build
      run: yarn build
    - name: Test
      run: yarn test --forbid-only

我们还有一个.npmrc文件用于本地安装:

@<org>:registry=https://npm.pkg.github.com

.yarnrc文件。

2 个答案:

答案 0 :(得分:0)

我们设法通过在.npmrc配置中显式复制build.yml配置来解决此问题:

      - uses: actions/setup-node@v1
        with:
          node-version: '10.x'
          registry-url: 'https://npm.pkg.github.com'
          # These following two lines are the key:
          always-auth: true
          scope: '@reedsy'

答案 1 :(得分:0)

我正在创建一个文件 .npmrc 和 .yarnrc。 类型:

name: Test

on: push
jobs:
  test:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [12.x]

    steps:
      - uses: actions/checkout@v2
      - name: Node ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: Create NPMRC
        run: |
            echo "//npm.pkg.github.com/:_authToken=${{ secrets.PACKAGES_TOKEN }}" >> ~/.npmrc
            echo "@you-scope:registry=https://npm.pkg.github.com" >> ~/.npmrc
            echo 'registry "https://registry.yarnpkg.com"' >> ~/.yarnrc
      - run: yarn install

LowerCase 中为您的 github 用户或您在 github 中的组织替换 @you-scope。

为此存储库创建一个 PACKAGES_TOKEN 秘密令牌,表示您的 github 访问权限。