Quando você está usando um projeto de estilo livre, você pode definir que após 20 minutos a construção seja abortada se não for concluída. Como isso é possível com um projeto Jenkins Multi Branch Pipeline?
jenkins
jenkins-pipeline
Devonte
fonte
fonte
JENKINS_URL/job/<any Pipeline project>/pipeline-syntax/
→ Step Reference .def n=Jenkins.instance.getNode("ETService3") if (n!=null && n.computer && n.computer.online) { echo "Online" } else { echo "Offline" // wait a little bit and try again }
Uma maneira complicada é adquirir o nó duas vezes. A primeira vez com tempo limite externo, a segunda com tempo limite interno. Eu também estou perdendo o recurso.Para um Pipeline Declarativo , é aconselhável usar a etapa de tempo limite na seção de opções .
A etapa de tempo limite tem 3 parâmetros que você pode configurar:
tempo (obrigatório, interno)
atividade (opcional, booleano)
unidade (opcional, valores: NANOSSEGUNDOS, MICROSECONDOS, MILISSEGUNDOS, SEGUNDOS, MINUTOS, HORAS, DIAS)
Exemplos:
A documentação oficial do Jenkins tem um exemplo muito bom para o uso de um tempo limite:
fonte
activity
tem falso como padrão. Quandoactivity
é falso - tempo limite para todo o trabalho,true
tempo limite para atividade (para imprimir qualquer coisa no log).timeout
para um determinado estágio de forma que o estágio subsequente seja executado normalmente. No exemplo acima, o pipeline é abortado após o tempo limite e os estágios subsequentes não são executados. Existe uma maneira de cumprir meu requisito? Amostra de código para o tempo limite de um determinado estágio (do documento oficial Jenkins):pipeline { agent any stages { stage('Example') { options { timeout(time: 1, unit: 'HOURS') } steps { echo 'Hello World' } } } }