2016-08-18 5 views
3

CI 실행기는 한 줄만 실행합니다. eslint보다 먼저 npm install을 실행하려고합니다. 그러나 섹션에 npm install을 추가하면 npm install 만 실행되고 실제로는 eslint을 실행하지 않고 빌드가 성공한 것으로보고됩니다. 여러 명령이 Windows 쉘 러너에서 지원되지 않습니까?Windows의 Gitlab CI 셸은 before_script 만 실행합니다.

동일한 결과로 을 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

솔루션 당신은 어떤 NPM이 .gitlab-ci.yml 파일에 명령 전에 "전화"추가 필요

:

before_script: 
    - 'call npm install' 

이것은 윈도우 때 모든 NPM 명령을 위해 필요하다 쉘 러너가 사용됩니다.

설명

NPM은 쉘 스크립트입니다. 따라서 서브 셸에서이 스크립트를 실행하려면 을 추가해야합니다. 그렇지 않으면 npm 스크립트의 "exit"명령은 gitlab에 의해 시작된 쉘을 닫습니다.

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

0

이 문제는 Windows에서 cmd.exe를 사용하는 기본 셸에서 발생합니다. Powershell로 변경하면 트릭을 수행하는 것 같습니다.

관련 문제