我在.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
我在一个阶段中看到了几个使用多个命令的配置示例。我不明白为什么其他命令没有运行。
答案 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