Tenho um trabalho multibranch definido para executar qualquer ramificação com um arquivo Jenkins.
Tenho algumas opções em que posso pensar se quero remover uma ramificação da lista de tarefas em execução para o pipeline de várias ramificações.
- Eu posso excluir o ramo
- Eu posso excluir o arquivo Jenkins nesse ramo
A segunda solução é boa, exceto que eu preciso confirmar e enviar isso para o repositório git do meu ramo, e se esse ramo for mesclado em outro ramo, ele desaparecerá do arquivo Jenkins.
Qual é a melhor maneira de desativar apenas algumas ramificações de um pipeline de várias filiais?
jenkins-pipeline
David West
fonte
fonte
when { anyOf { branch 'master'; branch 'release/**' } }
em qualquer estágio (no declarativo) ouif (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}
no pipeline com script (quase em qualquer lugar). Para a primeira opção, há mais disponível em jenkins.io/doc/book/pipeline/syntax/#when . De qualquer forma, a melhor maneira é configurá-lo no plug-in pipeline de várias filiais, conforme indicado na resposta.Simplesmente exclua o arquivo Jenkins nos ramos para os quais você não deseja ter trabalhos correspondentes. Isso excluirá o trabalho de ramificação (é claro, se você definiu sua "Estratégia de item órfão" apropriadamente).
Da perspectiva de um projeto Jenkins Multibranch Pipeline, isso tem o mesmo efeito que a exclusão da ramificação. Isso ocorre porque é simplesmente a varredura de ramificações que contêm arquivos Jenkins como critério para quando criar (ou excluir) um trabalho de ramificação correspondente.
Reverta a confirmação para restaurar o arquivo Jenkins se / quando você precisar do trabalho de ramificação novamente.
fonte