GitLab runner只执行一个命令

时间:2016-10-22 22:39:00

标签: windows gitlab gitlab-ci gitlab-ci-runner

我在.gitlab-ci.yml中有以下配置:

stages:
- build

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

但是跑步者只执行第一个命令(npm install -g gulp)。它运行第一个命令并报告成功,而不执行其他命令。

构建日志:

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

我在一个阶段中看到了几个使用多个命令的配置示例。我不明白为什么其他命令没有运行。

1 个答案:

答案 0 :(得分:11)

这实际上是这里描述的NPM错误:

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

NPM在退出时关闭shell,并且不会调用后续命令。

上面的问题描述了一种解决方法。只需在调用NPM之前添加call命令:

stages:
- build

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