【问题标题】:Gitlab CI shell on windows only runs before_scriptWindows 上的 Gitlab CI shell 仅运行 before_script
【发布时间】:2016-08-18 19:49:20
【问题描述】:

我的 CI 运行器只会运行一行。我正在尝试在eslint 之前运行npm install。但是,如果我将npm install 添加到before_script 部分,那么只有npm install 运行并且构建报告成功而实际上没有运行eslint。 Windows shell 运行程序不支持多个命令吗?

我还尝试将 npm install 移动到 lint 作业中,结果相同。

我已经在 Windows 主机上安装了 gitlab multi-runner。这是我的 .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 gitlab-ci


    【解决方案1】:

    解决方案

    您需要在 .gitlab-ci.yml 文件中在任何 npm 命令之前添加“call”

    before_script:
      - 'call npm install'
    

    使用 Windows shell 运行程序时,所有 npm 命令都需要它。

    说明

    npm 是一个 shell 脚本。因此,您必须添加 call 以在子 shell 中执行此脚本。否则,npm 脚本中的“exit”命令会关闭 gitlab 启动的 shell。

    https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/1025

    【讨论】:

      【解决方案2】:

      这是在 Windows 上使用 cmd.exe 的默认 shell 的问题。将其更改为 Powershell 似乎可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-05
        • 2021-06-28
        • 2022-08-14
        • 2019-03-14
        • 2017-05-31
        • 1970-01-01
        相关资源
        最近更新 更多