2016-04-14 16 views
6

Mam Gitlab CI runner działa w systemie Windows 10:Jak uda się budować na Gitlab CI powłoki biegacza

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

stages: 
    - build 

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

Staram się nie kompilacji z StatusText.exe (próbowałem powrocie kody stanu -1 , 0,1; wyrzucanie wyjątku, itp.) Ale Runner rejestruje tylko wyjątek i kontynuuje następujące kroki.

Co decyduje o tym, że runner powłoki CI powinien zakończyć się niepowodzeniem i nie przejść do następnego kroku?

wyjściowa:

... 
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

stoi ten sam problem jak ty dzisiaj wysłałem odpowiedź, która działa dla mnie.Mam nadzieję, że to pomaga tobie i innym –

Odpowiedz

6

Co decyduje o tym, że runner powłoki CI powinien zakończyć się niepowodzeniem, a nie przejść do następnego kroku?

1) Kiedy powinna zawieść

Trzeba dodać ten wiersz w wyniku realizacji gitlab-ci.yml

- # .... 
- exit 1 

etapie powinny zawieść i nie przejść do następnego kroku:

enter image description here

, a następnie, gdy patrzysz na swoją scenę (w moim przypadku na 3. jeden) wynik będzie nie powiodło się:

enter image description here

2) Kiedy należy się uda

Trzeba dodać ten wiersz w wyniku realizacji gitlab-ci.yml

- # .... 
- exit 0 

etapie powinny być:

enter image description here

a następnie, jeśli spojrzeć na swojej scenie (w moim przypadku 3rd jeden) wynik będzie OK i gotowe, aby przejść do następnego etapu:

enter image description here

0

Twój StatusTest.exe musi powrócić sygnał 1,0, -1 jako kod statusu. To musi być zaimplementowane w twojej aplikacji. W przeciwnym razie biegacz nie powiadomi, jeśli twoja aplikacja ulegnie awarii. Prawie każdy język programowania ma sposoby zwracania kodów stanu.

C#

Java

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

[...] i tak dalej.

Być może spróbuj rzucić wyjątek, po prostu zwróć kod statusu.