我的CI跑步者只会跑一行。我正试图在npm install
之前运行eslint
。但是,如果我将npm install
添加到before_script
部分,则只会运行npm install
,并且构建报告成功,而不会实际运行eslint
。 Windows shell runner上不支持多个命令吗?
我也尝试将npm install
移到lint
作业中,结果相同。
我在windows主机上安装了gitlab多跑步者。这是我的.gitlab-ci.yml
before_script:
- npm install
stages:
- test
cache:
key: "$CI_BUILD_REF_NAME"
paths:
- node_modules/
lint:
stage: test
tags:
- javascript
script:
- eslint **/*.js
答案 0 :(得分:2)
<强>解决方案强>
你需要在.gitlab-ci.yml文件中的任何npm命令之前添加“call”:
before_script:
- 'call npm install'
使用Windows shell runner时,所有npm命令都需要它。
<强>解释强>
npm是一个shell脚本。因此,您必须添加调用以在子shell中执行此脚本。否则,npm脚本中的“exit”命令将关闭由gitlab启动的shell。
请参阅https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/1025
答案 1 :(得分:0)
这是Windows上使用cmd.exe的默认shell的问题。将它改为Powershell似乎可以解决问题。