Windows上的Gitlab CI shell只运行before_script

我的CI跑步者只会跑一行.我想在eslint之前运行npm install.但是,如果我将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

最佳答案 解

您需要在.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

点赞