Como você pode adicionar um teste de linha de comando ao Jenkins que lê o código de saída?

2

Eu quero adicionar um script de linha de comando ao Jenkins como parte do processo de criação. Este script de linha de comando sairá com um código de erro de 0 se as coisas forem bem-sucedidas ou 666 se falhar. Desejo interromper a compilação se esse script falhar.

É possível fazer isso usando o Jenkins? Se sim, como?

    
por Gary Willoughby 14.01.2013 / 18:57

2 respostas

2

Seu script de compilação bash pode set -e antes de executar seu teste.

set -e fará com que Jenkins pare a compilação se houver um status de saída diferente de zero durante a compilação. Você teria algo parecido com isso na caixa Execute Shell na configuração do projeto:

set -e
yourcommand1
yourcommand2

Aqui está alguma documentação sobre as opções do bash .

    
por 14.01.2013 / 20:17
2

Você precisa ter cuidado ao sair com códigos acima de 255. Os códigos de saída devem estar no intervalo de 0 a 255. 0 significando sucesso os outros 1-255 são códigos de erro. Você também deve evitar os códigos de erro reservados que têm determinados significados.

cmp@cmp-dev:~$ bash --version
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Aqui está uma saída 666:

$ bash
$ exit 666
exit
$ echo $?
154

Ele envolve 255:

$ bash 
$ exit 256
exit
$ echo $?
0

Fique com 255 ou menos e evite os códigos de erro reservados (melhore o diabo que você conhece eh ?)

    
por 25.05.2013 / 10:07