Установите частный пакет 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.

Другие вопросы по тегам