Executando um processo em segundo plano no trabalho Pipeline


14

Estou procurando uma maneira de executar um processo java em segundo plano usando o pipeline declarativo Jenkins. Abaixo está o trecho de código

stage('Deploy'){
        steps{
            script{
                withEnv(['BUILD_ID=dontkill']) {
                    sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
                }
            }
        }
}

Já conhece o ProcessTreeKiller de Jenkins e todas as respostas sugerem fazer o mesmo. Eu tentei usar o ambiente dentro do bloco de etapas sem sorte.

Versão Jenkins: 2.60.1

Plug-in Pipeline: 1.1.7

Qualquer ajuda é muito apreciada.


O que acontece? Mensagem de erro? Falha silenciosa?
Camada B

Eu não tenho um processo java em execução. Esta é a fase final do meu pipeline, portanto, meu palpite é que Jenkins a inicia e termina no momento seguinte.
Dharanidhar 5/07

O que acontece quando você executa o comando diretamente no escravo? Efetue login no host do agente / escravo, vá para a área de trabalho do trabalho (ou se foi limpo manualmente, copie o arquivo war em algum lugar ... /tmppor exemplo) e execute tudo entre aspas duplas.
B Camada

Além disso, se o espaço de trabalho não foi eliminado, procure um arquivo chamado nohup.out em qualquer diretório que o comando shell tenha executado. o nohup registra automaticamente nesse arquivo quando a saída não é redirecionada de outra forma.
B Camada

@BlairM o mesmo script funciona bem quando eu tento com o usuário jenkins através de um shell não interativo sem login. Executar aspas duplas não faz diferença. nohup.out está presente, mas tem 0 KB.
Dharanidhar 6/07

Respostas:


15

Qualquer um enfrentando o mesmo problema e usando o projeto de pipeline, defina em JENKINS_NODE_COOKIEvez de BUILD_ID.

Não desperdice seu ajuste de tempo HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIEou JENKINS_SERVER_COOKIE. Nenhum deles trabalha para o projeto de pipeline.

Consulte https://issues.jenkins-ci.org/browse/JENKINS-28182 para obter mais detalhes.


1
Uau, isso é um pouco de beisebol aqui. Bom saber.
B: Camada B
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.