Integrando o Jenkins com Controle de Versão (Git)

JenkinsBeginner
Pratique Agora

Introdução

Bem-vindo a este laboratório sobre a integração do Jenkins com o Git. O Gerenciamento de Controle de Versão (SCM) é um pilar do desenvolvimento de software moderno. Integrar seu servidor de Integração Contínua (CI), como o Jenkins, a um sistema de SCM, como o Git, é um passo fundamental para automatizar seus processos de build e teste.

Neste laboratório, você aprenderá a:

  • Verificar se o plugin Git do Jenkins está disponível.
  • Criar um projeto Freestyle vinculado a um repositório Git local.
  • Adicionar uma etapa de build para executar um script a partir do repositório.
  • Executar um build manualmente para testar a configuração.
  • Configurar o polling de SCM para disparar builds automaticamente a cada novo commit.

Uma instância do Jenkins e um pequeno repositório Git local já estão preparados para este laboratório. Você pode acessar a interface web do Jenkins abrindo o navegador Firefox na área de trabalho. O navegador abrirá automaticamente em http://localhost:8080, portanto, não é necessário inserir a URL manualmente. Não é necessário fazer login.

Verificar o Plugin Git

O Jenkins utiliza plugins para adicionar integrações. O plugin Git fornece a opção Git que você usará na configuração do job.

  1. Abra o navegador Firefox a partir da interface da área de trabalho. O navegador abrirá automaticamente em http://localhost:8080, portanto, não é necessário inserir a URL manualmente. Não é necessário fazer login.
  2. No painel do Jenkins, clique no ícone de engrenagem no canto superior direito para abrir o Manage Jenkins.
  3. Clique em Plugins.
  4. Selecione a aba Installed plugins.
  5. Na caixa de filtro, digite git.
  6. Confirme se o Git aparece na lista de plugins instalados.

Plugin Git instalado

Com o plugin Git confirmado, você pode criar um projeto que extrai o código-fonte de um repositório.

Criar um Projeto e Configurar o SCM Git

Com o plugin Git instalado, você agora pode criar um projeto no Jenkins e configurá-lo para extrair o código-fonte do repositório local preparado no container do Jenkins.

  1. Retorne ao painel principal do Jenkins clicando no link Dashboard na navegação de trilha (breadcrumb) no canto superior esquerdo.
  2. Clique em New Item na barra lateral esquerda.
  3. Digite git-integration-project como o nome do item.
  4. Selecione Freestyle project.
  5. Clique em OK.

Isso o levará à página de configuração do projeto.

  1. Role para baixo até a seção Source Code Management.
  2. Selecione a opção Git. Se você não vir esta opção, verifique se o plugin Git foi instalado corretamente na etapa anterior.
  3. No campo Repository URL, insira a URL do repositório local preparada para este laboratório:
git://localhost/git-playground.git
  1. Deixe o Branch Specifier como o padrão, */master. Isso indica ao Jenkins para usar a branch master.
  2. Clique no botão Save na parte inferior da página.

Configuração do SCM Git

Você criou com sucesso um job do Jenkins vinculado a um repositório Git local. Na próxima etapa, você definirá o que o job deve fazer com o código baixado.

Adicionar uma Etapa de Build e Executar um Build Manual

Agora que o Jenkins sabe onde obter o código, você precisa dizer a ele o que fazer com esse código. Você adicionará uma etapa de build com comandos shell e, em seguida, executará um build manualmente para testá-lo.

  1. Na página do projeto git-integration-project, clique em Configure na barra lateral esquerda.
  2. Role para baixo até a seção Build Steps.
  3. Clique no menu suspenso Add build step e selecione Execute shell.
  4. Na área de texto Command, insira os seguintes comandos de build:
echo "Building from the Git repository"
./build.sh

Quando o job for executado, o Jenkins primeiro clonará o repositório Git em seu workspace e, em seguida, executará esses comandos a partir desse workspace. O script build.sh vem do repositório, portanto, uma execução bem-sucedida prova que o Jenkins baixou o código antes de executar a etapa de shell.

  1. Clique em Save.
  2. Você está de volta à página do projeto. Clique em Build Now na barra lateral esquerda para iniciar um build.

Um novo build aparecerá no painel Build History. Aguarde a conclusão (o ícone de status ficará azul em caso de sucesso).

  1. Clique no número do build (por exemplo, #1).
  2. Clique em Console Output no menu do build.

Build Git bem-sucedido

Você deverá ver uma saída confirmando que o Jenkins clonou o repositório e executou seus comandos com sucesso.

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building from the Git repository
Building from the Git repository
+ ./build.sh
Repository build script running
Workspace: /var/jenkins_home/workspace/git-integration-project
README.md
build.sh
Finished: SUCCESS

Habilitar Builds Automáticos com Polling de SCM

Executar builds manualmente é útil para testes, mas o verdadeiro poder da CI é a automação. Nesta etapa, você configurará o Jenkins para verificar (fazer polling) o repositório Git em busca de alterações.

  1. Navegue de volta para a página de configuração do git-integration-project (Página do Projeto > Configure).
  2. Role para baixo até a seção Build Triggers.
  3. Marque a caixa ao lado de Poll SCM.
  4. Uma caixa de texto Schedule aparecerá. Ela usa a sintaxe cron para definir com que frequência o Jenkins deve verificar o repositório em busca de alterações. Para verificar a cada minuto, insira o seguinte:
* * * * *
  1. Clique em Save.

O agendamento é armazenado com a configuração do job. O Jenkins agora verificará o repositório configurado uma vez por minuto e iniciará um novo build quando detectar um novo commit.

  1. Retorne à interface do Jenkins e vá para a página do git-integration-project.
  2. Na barra lateral esquerda, você verá uma nova opção chamada Git Polling Log. Clique nela.
  3. Esta página mostra a atividade de polling após o Jenkins ter executado pelo menos um ciclo de verificação. Pode levar até um minuto para que a primeira entrada apareça. Você deverá ver entradas como:
Started on ...
Using strategy: Default
[poll] Last Built Revision: Revision ...
The recommended git tool is: NONE
No credentials specified
 > git --version ## timeout=10
 > git ls-remote -h -- git://localhost/git-playground.git ## timeout=10
...
No changes

Configuração de polling de SCM

Isso demonstra que o Jenkins está configurado para verificar o repositório automaticamente. Em um projeto real, o repositório geralmente estaria hospedado em um servidor Git e o Jenkins faria o build quando novos commits aparecessem.

Resumo

Neste laboratório, você obteve experiência prática com uma das integrações mais críticas em um pipeline de CI: conectar o Jenkins a um repositório de controle de versão Git.

Você realizou com sucesso:

  • A verificação de que o plugin Git essencial está disponível para habilitar os recursos de integração Git do Jenkins.
  • A criação de um projeto Freestyle e sua configuração para baixar código de um repositório Git.
  • A definição de uma etapa de build para executar um script shell a partir do código baixado.
  • A verificação da configuração através da execução de um build manual.
  • A configuração de um gatilho de build automatizado usando Poll SCM, que permite ao Jenkins detectar e compilar novos commits automaticamente.

Essas habilidades são fundamentais para automatizar seu fluxo de trabalho de desenvolvimento e são o primeiro passo para construir um pipeline de CI/CD robusto e eficiente com o Jenkins.