Jenkins: Acione o pipeline de várias filiais na mudança upstream

Atualmente, estou testando a abordagem de pipeline do Jenkins 2.0 para ver se funciona no ambiente de compilação que estou usando.

Primeiro sobre o próprio ambiente. Atualmente, ele consiste em vários repositórios SCM. Cada repositório contém várias ramificações, para os diferentes estágios do desenvolvimento e cada ramificação é construída com várias configurações. Nem todas as configurações se aplicam a todos os repositórios.

Atualmente, todos os repositórios / ramificações estão configurados comoProjeto Matriz para as diferentes configurações. Cada projeto expõe seus resultados de construção como um artefato e esses artefatos são usados nos projetos posteriores.

Os repositórios diferentes dependem um do outro, portanto, uma construção bem-sucedida em um trabalho upstream aciona alguns trabalhos downstream específicos. Atualmente tudo isso funciona, mas a quantidade de trabalho necessária para configurar uma nova filial ou para ajustar o processo de construção é muito, pois muitos projetos diferentes precisam ser alterados manualmente.

Agora eu queria experimentar os novos pipelines. Minha idéia era criar projetos de pipeline de várias filiais e colocar umJenkinsfile dentro do repositório que contém as instruções para a compilação.

O principal problema é fazer com que as compilações sejam acionadas uma à outra, porque basicamente uma compilação em uma ramificação upstream específica precisa acionar uma ramificação downstream. No entanto, as informações de que ramificações a jusante precisam ser acionadas não são conhecidas pelo projeto a montante. Cada projeto a jusante busca os artefatos de algumas ramificações a montante e a solução ideal seria se a construção a jusante fosse acionada caso a construção a jusante que é a fonte do artefato conclua sua construção.

O problema é que apenas os projetos downstream realmente sabem quais artefatos eles precisam. É improvável que os nomes das filiais correspondam na maioria dos casos, o que dificulta o acionamento das compilações do projeto upstream.

Atualmente, isso é resolvido usando oReverseBuildTrigger. Mas essa coisa para de funcionar assim que chega perto de um pipeline.

Estou realmente sem saber como fazer isso funcionar. Existe alguma maneira de obter algo como oReverseBuildTrigger trabalhando dentro de scripts de pipeline?

O acionamento de toda a construção downstream para todas as ramificações, caso uma única ramificação a montante seja alterada, não é uma opção. Isso criaria muitas compilações iguais.

questionAnswers(3)

yourAnswerToTheQuestion