2016-08-18 2 views
3

CIランナーは1行だけを実行します。私はeslintの前にnpm installを実行しようとしています。しかし、セクションにnpm installを追加すると、npm installしか実行されず、実際にはeslintを実行することなくビルドが成功したとレポートされます。複数のコマンドがWindowsシェルランナーでサポートされていませんか?Windows上のGitlab CIシェルは、before_scriptを実行します。

npm installlintジョブに移動しても同じ結果が得られました。

Windowsホストにgitlabマルチランナーをインストールしました。ここではこれは、Windows上のcmd.exeを使用して、デフォルトのシェルでの問題である私の.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

ソリューションあなたはどのNPMがあなたの.gitlab-ci.ymlファイルにコマンドの前に "コール" を追加に必要

before_script: 
    - 'call npm install' 

これは、WindowsのときにすべてのNPMコマンドのために必要ですシェルランナーが使用される。

説明

NPMは、シェルスクリプトです。したがって、コールを追加して、このスクリプトをサブシェルで実行する必要があります。そうでなければ、npmスクリプト内の "exit"コマンドは、gitlabによって起動されたシェルを閉じます。

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

0

です。それをPowershellに変更することはそのトリックを行うようです。

関連する問題