2016-04-14 2 views
6

У меня есть бегун работает Gitlab CI на окнах 10:Как провалить сборки на Gitlab CI бегун оболочки

before_script: 
    - "echo off" 
    - 'call "%VS120COMNTOOLS%\vsvars32.bat"' 
    - echo. 
    - set 
    - echo. 

stages: 
    - build 

build: 
    stage: build 
    script: 
    - 'StatusTest.exe' 
    #- msbuild... 

Я пытаюсь подвести сборки с StatusText.exe (я попытался возвращение коды статуса -1 , 0,1, выброс исключения и т. Д.). Однако Runner регистрирует только исключение и продолжает следующие шаги.

Что определяет, что бегун оболочки CI должен выполнить сборку, а не перейти к следующему шагу?

Выход:

... 
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log 
$ echo. 

$ StatusTest.exe 

Unhandled Exception: System.Exception: tralala 
    at StatusTest.Program.Main(String[] args) 
$ echo "Restoring NuGet Packages..." 
... 
+0

сталкивается с теми же вопрос, как вам сегодня, я отправил ответ, который работает на меня.Надеюсь, это поможет вам и другим –

ответ

6

Что определяет, что бегун для оболочки CI должен сбой сборки, а не Перейдите к следующему шагу?

1) Когда он выйдет из строя

Вам нужно добавить эту строку в gitlab-ci.yml

- # .... 
- exit 1 

стадии исполнения результат должен дать сбой и не переходит к следующему шагу:

enter image description here

, а затем, когда вы смотрите на свою сцену (в моем случае 3-й один) результат будет провалена:

enter image description here

2) Когда удастся

Вам нужно добавить эту строку в gitlab-ci.yml

- # .... 
- exit 0 

стадии исполнения результат должен быть:

enter image description here

, а затем, когда вы посмотрите на стадии (в моем случае третий один) результат будет ОК и готовы перейти к следующему этапу:

enter image description here

0

StatusTest.exe Ваш должен возвращать сигнал 1,0, -1, как код состояния. Он должен быть реализован в вашем приложении. В противном случае бегун не будет уведомлять о сбое приложения. Практически на каждом языке программирования есть способы возврата кодов состояния.

C#

Java

System.exit(exitCode) # exitCode = 1 or 0 or -1

[...] и так далее.

Возможно, попробуйте не выбрасывать исключение, просто верните код состояния.