Itegração gitLab jenkins

Esse post destina-se a quem já usa jenkins e Gitlab. Se você nunca usou jenkins ou conhece muito pouco, recomendo esse dois posts:

  1. Instalando jenkins
  2. Criando novo job no jenkins

Assumindo que o projeto já está no Gitlab e o Jenkins já está instalado, vamos criar o novo job no jenkins integrando com o projeto do Gitlab.

Nesse caso, vamos configurar para que o job dispare somente quando for feito algum merge com o master do projeto. Vamos lá:

Primeiro vamos criar o projeto free style no jenkins:

Imagem

Crie a conexão do Jenkins com Gitlab e selecione essa conexão na opção GitLab connection. Se a conexão não existir, crie.

Imagem

  1. Selecione a opção git
  2. Adicione a URL do repositório
  3. Escolha as credenciais de acesso. Se não tiver ainda, crie clicando no botão add
  4. No campo Refspec adicione:
     +refs/heads/*:refs/remotes/origin/* +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
  5. No campo Branch Specifier (blank for 'any') adicione: 
     */master

Em Trigger de builds segue as configurações:

Imagem

Na opção marcada acima "Build when a change is pushed to GitLab"... Copie essa URL e cole no Gitlab como novo webhook.

Mas antes vá na opção Secret token e clique o botão generate para gerar o token.

Imagem

No Gitlab, localize o projeto. Vá em settings> integrations. 

Procure o botão add Webhook e adicione a referida URL do Jenkins e o token gerado:

Imagem

 Feito isso, clique no botão verde Add Webhook e o Webhook já aparece em baixo no botão:

Imagem

Feito isso, agora basta clicar no botão test e ver se deu certo. Se tudo estiver ok, aparece essa mensagem:

Imagem

Até aqui nosso projeto já está integrado com Gitlab. Dessa forma, sempre que for feito um merge com master, o GitLab dispara a trigger para que o job no jenkins seja executado. 

Daqui para frente basta configrar a parte de Build do seu job que pode ser ant, shell script e etc...

 

 

Comentários

 

Quem Sou

Graduado em ADS (Análise e desenvolvimento de sistemas).

Não sou "devoto" de nenhuma linguagem de programação. Procuro aproveitar o melhor de cada uma de acordo com a necessidade do projeto. Prezo por uma arquitetura bem feita, código limpo, puro e simples! 

anuncio atendente