GitLab runner only executing one command

gitlab, gitlab-ci, gitlab-ci-runner, windows

Solution

It's actually an NPM bug as described here:

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

NPM closes the shell upon exit and subsequent commands are not called.

A workaround is described in the issue above. Just add a `call` command before calling NPM:

stages:
- build

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

Problem

I have the following configuration in `.gitlab-ci.yml`: ``` stages: - build build: stage: build script: - npm install -g gulp - npm install - gulp ``` But the runner is only executing the first command (`npm install -g gulp`). It runs the first command and reports success, without executing the others. The build log: ``` Running with gitlab-ci-multi-runner 1.6.1 (c52ad4f) Using Shell executor... Running on WINBUILDER... Fetching changes... HEAD is now at 2df18c5 Update .gitlab-ci.yml From https://.../client 2df18c5..b4efae8 master -> origin/master Checking out b4efae85 as 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 ``` I've seen several config examples using multiple commands in a stage. I don't understand why the other commands are not running.

Original source