docker - 在 Github Actions 上从 package.json 安装私有 github 包
问题描述
我正在尝试在我的项目中将 Github 操作作为 CI 实施。问题是我在我的 package.json 上使用了私有 git URL,但 CI 收到错误,因为 Github 操作“不知何故”无法访问该存储库,这是不可能的,因为它位于同一个用户帐户上。
有谁知道如何解决这个问题?
main.workflow文件:
workflow "Github Actions" {
on = "pull_request"
resolves = ["Danger JS"]
}
action "Build" { <-------- This gets error
uses = "actions/npm@master"
args = "install"
}
action "Linter" {
uses = "actions/npm@master"
needs = "Build"
runs = "lint"
}
action "Test" {
needs = "Linter"
uses = "actions/npm@master"
args = "test"
}
action "Danger JS" {
uses = "danger/danger-js@master"
needs = ["Test"]
secrets = ["DANGERJS_TOKEN"]
}
错误日志:
Successfully built xxxxxxxxxxxxx
Successfully tagged gcr.io/xxxxxxxxxxxxx
Pulling image: gcr.io/github-actions-development/action-runner:latest
latest: Pulling from github-actions-development/action-runner
xxxxxxxxxxxxx: Pulling fs layer
xxxxxxxxxxxxx: Verifying Checksum
xxxxxxxxxxxxx: Download complete
xxxxxxxxxxxxx: Pull complete
Digest: sha256:xxxxxxxxxxxxx
Status: Downloaded newer image for gcr.io/github-actions-development/action-runner:latest
npm ERR! code ENOGIT
npm ERR! Error while executing:
This package is on same user account but github actions doesn't have access anyhow ------> npm ERR! undefined ls-remote -h -t ssh://git@github.com/test-user/react-test-package.git
npm ERR!
npm ERR! undefined
npm ERR! No git binary found in $PATH
npm ERR!
npm ERR! Failed using git.
npm ERR! Please check if you have git installed and in your PATH.
npm ERR! A complete log of this run can be found in:
npm ERR! /github/home/.npm/_logs/2018-12-04T13_03_05_291Z-debug.log
### FAILED Build
解决方案
现在有一个专门的动作来自动设置 nodejs,它被称为actions/setup-node
这里有一个例子:
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '10.x'
registry-url: 'https://registry.npmjs.org'
- run: npm install
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
它创建一个本地 .npmrc 文件,该文件使用环境变量来获取身份验证令牌:
//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}
@youraccount:registry=https://registry.npmjs.org
您可以使用 if 来定位任何私有注册表,例如 GitHub 包
推荐阅读
- python - 将 csv 和 shapefile 与 geopandas 合并
- angular - 具有许多可能的数字选项的根对象的动态角度接口
- python - 在 Google 表单提交或 Google 表格更新上运行 Python 代码
- snowflake-cloud-data-platform - 无法使用 COPY INTO 命令将 csv 文件加载到雪花中
- node.js - Recaptcha V2 已验证但收到 HTTP_HEADERS_SENT
- javascript - 如何将 Firebase JWT 添加到 Angular HTTP 请求中?
- android - 销毁活动后是否可以在内存中保留提交片段事务标志
- python - 将参数传递给函数内的方法
- javascript - 如何将网格向左对齐并使其响应three.js
- javascript - 如何为 anyElement.querySelector 方法创建简写