Como verifico o status da compilação Jenkins sem mudar para o navegador?
Se necessário, posso criar um script usando a API JSON, mas fiquei pensando se já existe algo assim embutido.
scripting
command-line-interface
jenkins
Catskul
fonte
fonte
Respostas:
Não consegui encontrar uma ferramenta integrada, então criei uma:
fonte
Verifique se uma compilação está sendo executada ou não
Eu tentei o script Python na resposta a esta pergunta, mas não consegui fazê-lo funcionar. Eu não conheço Python e não queria investir tempo em depuração, mas consegui ler o script o suficiente para obter inspiração.
Tudo o que preciso fazer é verificar se uma compilação está sendo executada ou não. Para fazer isso, usei curl e grep, assim:
curl http://myjenkins/job/myjob/lastBuild/api/json | grep --color result\":null
result\":null
retornará 0.result\":null
retornará 1.Não é especialmente elegante, mas funciona bem o suficiente para minhas necessidades.
Por exemplo, eu tenho um script Bash que inicia uma compilação e aguarda a conclusão:
Obrigado pela inspiração, Catskul!
fonte
TypeError: cannot concatenate 'str' and 'NoneType' objects
. Como não conheço Python, mudei para o shell e marquei sua resposta com +1 como inspiração. Obrigado!Um ex-colega meu escreveu https://github.com/txels/autojenkins, que possui vários recursos de conveniência e material do tipo API para trabalhar com uma instância Jenkins do Python ...
fonte
Outra solução Python:
fonte
Você pode usar um script Groovy:
Via jenkins-cli
, onde
=
significa padrão. Você pode se autenticar com--username <USER> --password <PASS>
ou com-i <SSH-PRIVATE-KEY>
.Via jenkins-cli sobre SSH
fonte
Eu acho que encontrei uma maneira mais fácil. Se entendi corretamente, você deseja verificar o resultado da construção - se foi um sucesso ou um fracasso, em outras palavras.
O comando "build" da Jenkins CLI altera o código de saída, dependendo do resultado da build, desde que você use a opção
-s
ou-f
no final.Por exemplo,
ou
Observe que a opção vai no final; não é o primeiro
-s
, usado para definir o URL da instância Jenkins.E então, para obter o resultado, você pode usar
$?
:Se o resultado for 0, foi um sucesso. Se for algo diferente de 0, foi um fracasso.
Referência: Não consigo encontrar uma instância Jenkins público que dá acesso a esta página, mas pode ser encontrada em sua instância local Jenkins:
http://<url of Jenkins Instance>/cli/command/build
. Também explica a diferença entre-s
e-f
:fonte
Você pode usar o descritor simbólico
lastBuild
:O
result
elemento na resposta contém uma sequência que descreve o resultado da construção.fonte
Felizmente, existe um jenkins-cli que você pode usar para obter algumas informações do Jenkins. Infelizmente, você não pode recuperar o status de uma construção usando a CLI - o que significa que sua solução de uso da API JSON não está apenas correta - é a única maneira programática de fazer isso.
Além disso, embora pareça
get-job
fazer o que você deseja, na verdade não retorna o resultado - apenas retorna a configuração do trabalho.fonte
Outro script para CMD (Windows):
fonte
Você pode tentar com isso,
fonte