Job Trigger Jenkins from Bitbucket Pull Request

3

Existem várias maneiras de acionar um trabalho do Jenkins a partir de um SCM como o Bitbucket, mas o que eu quero fazer especificamente é disparar uma compilação usando a ramificação que é a origem da solicitação de extração.

Até agora, usamos o Bitbucket Pull Request Builder, mas ele é muito esquisito, não é confiável e não é bem suportado.

link

O Bitbucket fornece recursos bastante bons em termos de Webhooks, que, quando usados com o Plugin Jenkins Git, permitem o acionamento de compilações com base em vários eventos do Bitbucket (por exemplo, uma atualização de solicitação pull).

Existe também o plugin Bitbucket Webhook, mas, novamente, isso não oferece muito em termos de escolha dinâmica do branch que você quer construir.

link

No entanto, o que isso parece fazer é disparar uma pesquisa do repositório, onde, então, ele tenta construir qualquer ramificação que seja diferente da ramificação principal.

Nosso caso de uso é que permitimos que os desenvolvedores criem suas próprias ramificações, para as quais eles criam solicitações de solicitação para o ramo de desenvolvimento.

Parece não haver nenhuma maneira de acionar uma compilação que use a ramificação criada pelo desenvolvedor como a ramificação da compilação (além do Bitbucket Pull Request Builder).

Estou certo ou errado nisso?

    
por Garreth McDaid 02.02.2017 / 16:27

2 respostas

0

Criamos um job jenkins para cada desenvolvedor e, em seguida, usamos uma compilação de Jenkins com parâmetros, basta inserir o nome da ramificação e clicar em compilar. Eu sei que não é completamente automatizado, mas funciona bem o suficiente. Então você pode usar o plug-in do notificador Stash para enviar um sinal de volta para o Bit Bucket de que a compilação é boa - você obtém um bom sinal verde no Bit Bucket.

    
por 12.09.2017 / 07:51
0

Eu implementei essa solução na empresa de um cliente e acho que o plug-in de solicitação pull do BitBucket é ótimo e atende a maioria dos requisitos.

Você está correto, o plugin de solicitação pull do BitBucket é a sua melhor opção, caso contrário pode requerer que você desenvolva um plugin, mas eu acho que você não deveria, já que o plugin permite tudo que você pode imaginar.

No seu caso, você pode configurar o plug-in para criar apenas filiais específicas ou todas as filiais.

Digamos que um desenvolvedor verifique uma nova ramificação do ramo de desenvolvimento, ele então desenvolve e envia uma confirmação, a tarefa Jenkins configurada como um multi-repositório multi-repositório varre a equipe BitBucket a cada 10 minutos, por exemplo, e identifica que um novo código foi enviado, cria automaticamente um novo trabalho para o pedido pull e um novo trabalho para o ramo.

Quando o trabalho de solicitação pull termina, ele notifica BitBucket com o status da construção (sucesso, falha) e, em seguida, o revisor vê uma marca verde no Confluence, o que significa que o trabalho foi concluído corretamente com o novo código. o código - isso lhe dá dois fatores: o primeiro é que o código está jogando bem com o código na ramificação de desenvolvimento e o segundo fator é sua própria revisão de código, se ele aprova o código, o novo código é mesclado ao desenvolvimento, pull request está sendo fechado automaticamente (ou não - é configurável no plug-in) e, na próxima vez que a varredura for executada, ele identificará o push to development e acionará uma nova execução.

Se você olhar na configuração do plugin, você pode configurar quais repositórios dentro da equipe e quais ramificações dentro de cada repositório devem ser construídos automaticamente.

Você pode verificar o pipeline que escrevi para esse cliente em minha conta do Github .

Espero que minha resposta tenha ajudado você.

    
por 12.09.2017 / 16:07