Dᴀʀ*_*ᴅᴇʀ 5 testing yaml unit-testing node.js github-actions
我已经为 Github Action 编写了一个测试文件:
测试.yml
name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run build --if-present
- run: npm test
Run Code Online (Sandbox Code Playgroud)
但我的package.json使用组织私有存储库。当 Github Action 运行时,它失败并出现错误:
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@org/repo/
npm ERR! 404
npm ERR! 404 '@org/repo@1.2.3' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/runner/.npm/_logs/2022-02-10T17_17_46_961Z-debug.log
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)
我的研究试图解决这个问题:
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/在我的 Github Action 中,如何正确引用私有组织存储库,以便我的测试能够正常工作,或者是否缺少一个步骤?
您必须使用 URL + 令牌向 CI 添加授权 - 这是通过.npmrc文件完成的。
创建一个令牌:npm token create --read-only
将其添加到 GitHub 上名为 NPM_TOKEN 的机密中
在运行之前npm ci使用您的令牌创建一个本地文件:
添加一个步骤:- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
其他一切都保持原样。