2017-06-12 64 views
2

私はGitlab 8.15.4とそのビルドのための最新のランナーを使用しています。私たちのファイアウォールのために、npm installを実行することはできません。ノードモジュールを別の場所からビルドフォルダにコピーしています。ランナーはWindows 7マシン上にあります。robocopyのビルドを終了させる方法を教えてください。

私の最初の試み: (.gitlab-ci.yml)

before_script: 
- robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s 
build: 
    stage: build 
    script: 
    - echo starting 
    - gulp 
    - echo done 
    artifacts: 
    paths: 
    - deploy.zip 

がエラーでビルドを失敗:

ERROR: Job failed: exit status 1

マイ秒(n番目)しようとは、スクリプトにrobocopyを置きますファイルとそこからそれを実行します。

(.gitlab-ci.yml)

before_script: 
- S:\Storage\GitLab-Runner\Scripts\CopyAssets.bat 
build: 
    stage: build 
    script: 
    - echo starting 
    - gulp 
    - echo done 
    artifacts: 
    paths: 
    - deploy.zip 

(CopyAssets.bat)

robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s 
set/A errlev="%ERRORLEVEL% & 24" 
exit/B %errlev%  

渡しが、任意の他のステップを実行しません。

終了時にRoboCopyがビルドを終了しないようにするにはどうすればよいですか?

答えて

3

あなたと他の多くの人が、CI展開でrobocopyを使用してこの問題に遭遇しました。私はこの質問をしばらく返答していないことが分かっており、他の回答はrobocopyの後でスクリプトを続けることと互換性がないので、私はここで解決策を共有したいと思います。

8(> = 8はコピーエラーを意味します)の下のすべての戻りコードをrobocopyで無視したい場合は、コマンドに直接従い、エラーレベルを変更する条件が必要です。

(robocopy src dst) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0 
+0

Windows Server 2008およびgitlab-runner 10.4で正常にテストされました。 – radomeit

関連する問題