2016-08-18 66 views
3

我的CI運行器只能運行一行代碼。我試圖在eslint之前運行npm install。但是,如果我將npm install添加到before_script部分,則只有npm install會運行,並且構建報告成功,而不會實際運行eslint。多個命令是否在Windows Shell Runner上不受支持?Windows上的Gitlab CI外殼只能運行before_script

我也嘗試將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 

回答

2

解決方案

您需要添加 「呼」 的任何命令,故宮在.gitlab-ci.yml文件前:

before_script: 
    - 'call npm install' 

它要求所有NPM命令當Windows使用shell runner。

說明

NPM是一個shell腳本。所以你必須添加調用在子shell中執行這個腳本。否則,npm腳本中的「exit」命令會關閉由gitlab啓動的shell。

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

0

這是在Windows上使用cmd.exe的默認shell的問題。將它改爲Powershell似乎有訣竅。