J'ai un coureur Gitlab CI fonctionnant sur Windows 10:
before_script:
- "echo off"
- 'call "%VS120COMNTOOLS%\vsvars32.bat"'
- echo.
- set
- echo.
stages:
- build
build:
stage: build
script:
- 'StatusTest.exe'
#- msbuild...
J'essaie d'échouer la génération avec StatusText.exe (j'ai essayé de renvoyer les codes d'état -1,0,1; levée d'une exception, etc.) Mais Runner enregistre uniquement l'exception et continue avec les étapes suivantes.
Qu'est-ce qui détermine que le runner CI Shell doit échouer à la génération et ne pas passer à l'étape suivante?
Production:
...
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..."
...
Qu'est-ce qui détermine que le runner CI Shell doit échouer à la génération et ne pas passer à l'étape suivante?
Vous devez ajouter cette ligne dans votre gitlab-ci.yml
- # ....
- exit 1
Le résultat de l'exécution de l'étape doit échouer et ne passe pas à l'étape suivante:
puis quand vous regardez votre stage (dans mon cas le 3ème) le résultat sera raté:
Vous devez ajouter cette ligne dans votre gitlab-ci.yml
- # ....
- exit 0
Le résultat de l'exécution de l'étape doit être:
puis quand vous regardez votre étape (dans mon cas la 3ème) le résultat sera Ok et prêt à passer à l'étape suivante:
Votre StatusTest.exe
Doit renvoyer un signal 1,0, -1 comme code d'état. Il doit être implémenté dans votre application. Sinon, le coureur ne vous avertira pas si votre application échoue. Presque tous les langages de programmation ont des moyens de retourner des codes d'état.
Java
System.exit(exitCode) # exitCode = 1 or 0 or -1
[...] etc.
Essayez peut-être de ne pas lever d'exception, renvoyez simplement un code d'état.