Je travaille actuellement sur le remplacement de notre installation de drone CI avec des actions GitHub.
Le flux de travail d'action que j'ai jusqu'à présent se résume à ce qui suit .github/workflows/ci.yml
fichier:
on: [ Push, pull_request ]
name: CI
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node
uses: actions/setup-node@v1
with:
node-version: '13.x'
- name: Install Dependencies
run: npm install
Le journal lui-même sort comme une longue série de npm WARN tar ENOENT: no such file or directory
ALA La liste tronquée ci-dessous.
2020-04-29T21:15:31.7899082Z npm install
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/acorn-26d8ba97/dist/acorn.js.map'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/coffeescript-acee515b/lib/coffee-script/register.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/coffeescript-acee515b/lib/coffee-script/repl.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/coffeescript-acee515b/lib/coffee-script/rewriter.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/tslint-c216b578/LICENSE'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/eslint-cd3dbe58/LICENSE'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/eslint-cd3dbe58/README.md'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/TypeScript-b4b55d18/lib/diagnosticMessages.generated.json'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/jquery-1794793b/dist/jquery.min.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/lodash-05c1df31/fp/_convertBrowser.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/lodash-70e4a396/fp/_convertBrowser.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/lodash-79f5ae17/fp/_convertBrowser.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/lodash-e49b02f6/fp/_convertBrowser.js'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/lodash-16fa050d/fp/_convertBrowser.js'
Le conseil que j'ai trouvé en ligne est à rm package-lock.json
Mais ce n'est pas une solution acceptable, car je dois tester notre code avec les versions exactes de nos dépendances que nous avons verrouillées.
En outre, je ne crois pas qu'il y ait quelque chose de mal avec notre fichier paquet-serrure.json pour commencer, car il est toujours npm install
est comme prévu à la fois localement et sur notre installation de drone CI.
À attendre longtemps, j'ai trouvé la solution ici:
Installez un module NPM à partir d'un référentiel github privé à l'aide de GitHub Actions
- uses: actions/checkout@v2
with:
persist-credentials: false
- uses: actions/setup-node@v1
with:
node-version: 12.x
- run: git config --global url."https://${{ secrets.PAT }}@github.com/".insteadOf ssh://[email protected]/
- run: npm ci
...
J'avais essentiellement essayé tout cela seul, mais la partie la plus importante manquait:
with:
persist-credentials: false
actions/checkout@v2
volonté par défaut avec certains paramètres pour GIT et prévenir insteadOf
de fonctionner correctement.