Установите частный пакет github из package.json на Github Actions
Я пытаюсь реализовать действия Github в качестве CI для моего проекта. Проблема в том, что я использую частный URL-адрес git в моем package.json, но 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 ответа
Вы можете поместить authToken, у которого есть права на чтение реестра, в .npmrc
в репозитории, где вы запускаете npm install
.
Пример:
//npm.pkg.github.com/:_authToken=**************
@youraccount:registry=https://npm.pkg.github.com
Теперь есть специальное действие для автоматической настройки 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.