3
respostas

Criando Builds com Configurações Específicas

Olá Pessoal,

Estou criando um projeto no jenkins, mas a aplicação roda com 3 configurações diferentes:

Weblogic-Cluster

Weblogic-Single

Jboss

Esse projeto é composto por 4 modulos que precisam ser compilados separadamente pois são dependentes.

Criei um job com os parametros e setando a Configuration Matrix usando User-Defined Axis com esses paramentros. E no processo de build queria chamar um processo para realisar o checkout dos projetos e depois realizar a compilação de cada um deles. Mas no caso eu queria que fosse feito esse processo 3 vezes, uma para cada configuração.

Não sei se consegui explicar o que preciso, e gostaria de saber se isso é possível.

Caso contrário precisava de um exemplo de como executar jobs com parametros diferentes em cada execução?

3 respostas

Cesar,

Se eu entendi direito seguem minhas considerações...

A modularização e dependências entre os seus projetos está configurada através de maven? Se sim, você não terá muitos problemas, pois o jenkins identifica o relacionamento entre projetos e cuida do resto pra você. Se não estiver, eu recomendo que você configure dessa forma, pois vai facilitar muito as coisas.

Sobre as configurações por ambientes: eu acredito que a melhor forma de fazer isso (e é uma das formas mais comuns que a gente vê no mercado) seja usando profiles específicos para cada ambiente. Nesse caso, você pode querer, também, dar uma olhada na opção de filtering do plugin Maven Resources.

Repare que eu não estou dando respostas finais para o seu problema especificamente... é mais uma orientação geral pra vc saber por onde seguir, ok ;)?

Espero que ajude! :)

Grande abraço, Romulo.

Romulo,

Compreendi a sua orientação, e hoje eu já tenho esses profiles na estrutura do projeto e controlodados pelo maven.

Minha maior dificuldade é no Jenkins criar um plano da seguinte maneira:

1) Baixar o branch ativo da aplicação 2) Gerar o build dessa aplicação para Jboss, Weblogic-Single e Cluster

Neste caso o passo 2 deverá ser executado 3 vezes.

Oi Cesar,

Entendi. Ao final da execução você precisa de três pacotes, um pra cada ambiente, certo?

Minha sugestão é você criar um job para cada ambiente. Se sua configuração estiver da forma que estou imaginando, esses jobs vão ser idênticos, exceto pelo profile que você estará usando no goal do maven. Depois você cria um job cuja função é somente ativar a execução desses 3 outros jobs.

Entende o que quero dizer?

Não sei se essa é a melhor opção, mas é uma solução flexível e de fácil manutenção. Essa, possivelmente, é a forma que eu lidaria com esse tipo de situação.

PS: Essa sugestão é porque estou assumindo que o resultado final de sua execução sempre vai gerar os pacotes para os 3 ambientes. Se isso não fosse necessário bastaria um job parametrizado, onde você parametrizaria o profile, saca?

Abs,