在 Github Actions 上从 package.json 安装私有 github 包 [英] Install private github package from package.json on Github Actions

查看:13
本文介绍了在 Github Actions 上从 package.json 安装私有 github 包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的项目中将 Github 操作作为 CI 实施.问题是我在 package.json 上使用了私有 git URL,但 CI 出现错误,因为 Github 操作不知何故"无法访问该存储库,这是不可能的,因为它位于同一用户帐户上.

I'm trying to implement Github actions as a CI on my project. The problem is that I'm using private git URL on my package.json but CI gets an error because Github actions "somehow" doesn't have access to that repo which it's impossible because it's on the same user account.

有人知道如何解决这个问题吗?

Does anyone have any idea how to figure this out?

ma​​in.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,它被称为 动作/设置节点

Now there is a dedicated action to automatically setup nodejs it's called 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 文件,该文件使用环境变量来获取身份验证令牌:

It creates a local .npmrc file that is using the environment variable to get the authentication token:

//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}
@youraccount:registry=https://registry.npmjs.org

您可以使用 if 来定位任何私有注册表,例如 GitHub 包

You can use if to target any private registry, like GitHub packages for instance

这篇关于在 Github Actions 上从 package.json 安装私有 github 包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆