3 votes

GitLab runner exécute seulement une commande

J'ai la configuration suivante dans .gitlab-ci.yml:

étapes:
- build

build:
  stage: build
  script:
    - npm install -g gulp
    - npm install
    - gulp

Mais le runner n'exécute que la première commande (npm install -g gulp). Il exécute la première commande et signale le succès, sans exécuter les autres.

Le journal de construction:

Running with gitlab-ci-multi-runner 1.6.1 (c52ad4f)
Utilisation de l'exécuteur Shell...
Exécution sur WINBUILDER...

Récupération des changements...

HEAD est maintenant à 2df18c5 Mise à jour de .gitlab-ci.yml
Au départ de https://.../client
   2df18c5..b4efae8  master     -> origin/master
Vérification dehors b4efae85 comme master...

$ npm install -g gulp

C:\Users\Administrator\AppData\Roaming\npm\gulp -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js
C:\Users\Administrator\AppData\Roaming\npm
`-- gulp@3.9.1 

Build succeeded

J'ai vu plusieurs exemples de configuration utilisant plusieurs commandes dans une étape. Je ne comprends pas pourquoi les autres commandes ne sont pas exécutées.

10voto

karliwson Points 2435

C'est en fait un bug NPM tel que décrit ici:

https://github.com/npm/npm/issues/2938

NPM ferme le shell lors de la sortie et les commandes suivantes ne sont pas appelées.

Une solution de contournement est décrite dans l'issue ci-dessus. Il suffit d'ajouter une commande call avant d'appeler NPM:

stages:
- build

build:
  stage: build
  script:
    - call npm install -g gulp
    - call npm install
    - gulp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X