2016-04-14 26 views
6

Ho un Gitlab CI corridore in esecuzione su Windows 10:Come a fallire una generazione su Gitlab CI guscio corridore

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

stages: 
    - build 

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

sto cercando di fallire la compilazione con StatusText.exe (ho cercato di tornare codici di stato -1 , 0,1, lancio di un'eccezione, ecc.), Ma Runner registra solo l'eccezione e continua con i seguenti passaggi.

Che cosa determina che il runner di shell CI non deve eseguire il build e non procedere al passaggio successivo?

uscita:

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

di fronte lo stesso problema come voi oggi, ho postato una risposta che sta funzionando per me.Spero che aiuti te e gli altri –

risposta

6

Che cosa determina che il runner della shell CI non deve eseguire la build e non procedere al passaggio successivo?

1) Quando si dovesse fallire

È necessario aggiungere questa riga nel vostro gitlab-ci.yml

- # .... 
- exit 1 

La fase risultato dell'esecuzione dovrebbe fallire e non passare alla fase successiva:

enter image description here

e poi quando guardi il tuo palco (nel mio caso il 3 ° uno) il risultato può essere considerata negativa:

enter image description here

2) Quando si dovrebbe riuscire

È necessario aggiungere questa riga nel vostro risultato dell'esecuzione gitlab-ci.yml

- # .... 
- exit 0 

La fase dovrebbe essere:

enter image description here

e poi quando si guarda al vostro stadio (nel mio caso il 3 ° uno) il risultato sarà ok e pronto ad andare alla fase successiva:

enter image description here

0

vostro StatusTest.exe deve restituire un segnale di 1,0, -1 come codice di stato. Deve essere implementato nella tua applicazione. Altrimenti il ​​corridore non notificherà se l'applicazione non funziona. Quasi tutti i linguaggi di programmazione sono in grado di restituire i codici di stato.

C#

Java

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

[...] e così via.

Forse provare a non generare un'eccezione, è sufficiente restituire un codice di stato.

Problemi correlati