Integrando Jenkins com Controle de Origem (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 Fonte (SCM - Source Control Management) é um pilar do desenvolvimento de software moderno. Integrar seu servidor de Integração Contínua (CI - Continuous Integration), como o Jenkins, com um sistema SCM, como o Git, é um passo fundamental na automação de 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 (Projeto Livre) vinculado a um repositório Git local.
  • Adicionar uma etapa de build para executar um script do repositório.
  • Executar um build manualmente para testar a configuração.
  • Configurar a sondagem (polling) do SCM para acionar builds automaticamente em novos commits.

Uma instância do Jenkins já está em execução 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, você não precisa inserir o URL manualmente. Nenhum login é necessário.

Verificar o Plugin Git

O Jenkins vem com integração Git integrada. O plugin Git já está instalado por padrão, permitindo que o Jenkins interaja com repositórios Git. Vamos verificar se o plugin Git está disponível.

  1. Abra o navegador Firefox a partir da interface de desktop. O navegador abrirá automaticamente em http://localhost:8080, então você não precisa inserir o URL manualmente. Nenhum login é necessário.
  2. No painel principal (dashboard) do Jenkins, clique no ícone de engrenagem (botão de configurações) no canto superior direito.
  3. Na página de configurações, localize e clique em Plugins.
  4. Selecione a aba Installed plugins (Plugins Instalados).
  5. Na caixa de pesquisa à direita, digite Git para filtrar os plugins instalados.
  6. Você deverá ver o Git plugin listado entre os plugins instalados, confirmando que a integração Git está disponível.
Jenkins installed plugins page

Com a confirmação de que o plugin Git está disponível, você pode prosseguir para a próxima etapa para criar um projeto que utilize Git.

Criar um Projeto e Configurar Git SCM

Com o plugin Git instalado, você pode agora criar um projeto Jenkins e configurá-lo para puxar o código fonte de um repositório Git.

  1. Retorne ao painel principal do Jenkins clicando no link Dashboard na navegação de 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, por favor, verifique se o plugin Git foi instalado corretamente na etapa anterior.
  3. No campo Repository URL, insira o caminho absoluto para o repositório Git local preparado para você:
https://github.com/labex-labs/git-playground
  1. Deixe o Branch Specifier como o padrão, */master. Isso informa ao Jenkins para usar o branch master.
  2. Clique no botão Save na parte inferior da página.
Seção Source Code Management na configuração do projeto

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

Adicionar Etapa de Build e Executar um Build Manual

Agora que o Jenkins sabe de onde obter o código, você precisa dizer a ele o que fazer com esse código. Você adicionará um passo 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 dropdown Add build step e selecione Execute shell.
  4. Na área de texto Command, insira os seguintes comandos de build:
echo "Building the project..."
date
echo "Listing files in workspace:"
ls -la
echo "Build complete!"

Quando o job for executado, o Jenkins primeiro clonará o repositório Git em seu workspace e, em seguida, executará esses comandos de dentro desse workspace.

  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 para sucesso).

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

Você deverá ver a 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 rev-parse --resolve-git-dir /var/jenkins_home/workspace/git-integration-project/.git ## timeout=10
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building the project...
Building the project...
+ date
Mon Jan 1 12:01:00 UTC 2024
+ echo Listing files in workspace:
Listing files in workspace:
+ ls -la
total 24
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 ..
drwxr-xr-x 8 jenkins jenkins 4096 Aug 21 10:33 .git
-rw-r--r-- 1 jenkins jenkins   32 Aug 21 10:33 README.md
-rw-r--r-- 1 jenkins jenkins   15 Aug 21 10:33 file1.txt
-rw-r--r-- 1 jenkins jenkins   15 Aug 21 10:33 file2.txt
+ echo Build complete!
Build complete!
Finished: SUCCESS

Habilitar Builds Automáticos com SCM Polling

Executar builds manualmente é útil para testes, mas o verdadeiro poder da CI é a automação. Nesta etapa, você configurará o Jenkins para iniciar automaticamente um build sempre que uma alteração for detectada no repositório Git.

  1. Navegue de volta à 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á. Isso 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.

Como estamos usando um repositório remoto do GitHub (https://github.com/labex-labs/git-playground), não podemos modificá-lo diretamente para testar o trigger de polling. No entanto, você pode observar como o SCM polling funciona:

  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. Você deverá ver entradas como:
Started on Aug 21, 2025, 10:36:00 AM
Using strategy: Default
[poll] Last Built Revision: Revision d22f46ba8c2d4e07d773c5126e9c803933eb5898 (refs/remotes/origin/master)
The recommended git tool is: NONE
No credentials specified
 > git --version ## timeout=10
 > git --version ## 'git version 2.30.2'
 > git ls-remote -h -- https://github.com/labex-labs/git-playground ## timeout=10
Found 3 remote heads on https://github.com/labex-labs/git-playground
[poll] Latest remote head revision on refs/heads/master is: d22f46ba8c2d4e07d773c5126e9c803933eb5898 - already built by 1
Done. Took 0.36 sec
No changes

Isso demonstra que o Jenkins está consultando com sucesso o repositório remoto em busca de alterações a cada minuto. Em um cenário do mundo real, quando novos commits são enviados para o repositório, o Jenkins acionaria automaticamente um novo build.

  1. Você também pode acionar manualmente outro build clicando em Build Now para ver como o sistema de polling se integra aos builds manuais.

Resumo

Neste laboratório, você adquiriu 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 origem Git.

Você conseguiu com sucesso:

  • Verificar que o plugin Git essencial está disponível para habilitar as capacidades de integração Git do Jenkins.
  • Criar um projeto Freestyle e configurá-lo para fazer checkout de código de um repositório Git.
  • Definir um passo de build para executar um script shell a partir do código com checkout.
  • Verificar a configuração executando um build manual.
  • Configurar um gatilho de build automatizado usando Poll SCM, que permite ao Jenkins detectar e construir 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.