在Github Actions上从package.json安装私有github包

时间:2018-12-04 13:29:45

标签: docker github npm continuous-integration github-actions

我正在尝试将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

2 个答案:

答案 0 :(得分:0)

您可以将对注册表具有读取权限的authToken放入运行.npmrc的存储库中的npm install中。

示例:

//npm.pkg.github.com/:_authToken=**************
@youraccount:registry=https://npm.pkg.github.com

答案 1 :(得分:0)

现在有一个专门的操作可以自动设置称为actions/setup-node的nodejs

这里有个例子:

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程序包