Você sabia que o Jenkins possui suporte integrado para CI/CD (Integração Contínua/Entrega Contínua)? Implementar um pipeline de CI/CD do Jenkins com o seu projeto pode melhorar significativamente o seu processo de desenvolvimento de software.
O Jenkins é uma das ferramentas de automação de DevOps mais populares até hoje. E se você está procurando começar com o pipeline de CI/CD do Jenkins, você veio ao lugar certo.
Continue lendo e, neste tutorial, você aprenderá como configurar um pipeline de CI/CD do Jenkins com o GitHub.
Pré-requisitos
Este tutorial pressupõe que você tenha os seguintes requisitos para acompanhar os exemplos.
Você já deve ter uma instalação do Jenkins. Os exemplos deste tutorial utilizarão o Jenkins v2.319.1 em um computador com Windows 10 20H2.
- O console web do Jenkins deve ser acessível pela internet.
- A Github account to which you’ll connect with the Jenkins CI CD pipeline.
- Git SCM. Este tutorial usa a versão mais recente (2.34.1) de 64 bits do Git para Windows.
Preparando o Repositório do GitHub
Este tutorial envolve a integração de um pipeline de CI/CD do Jenkins com um repositório do GitHub. Em vez de criar um projeto em branco, fazer um fork de um repositório existente é mais rápido para começar.
1. Primeiro, abra um navegador e faça login na sua conta do GitHub.
2. Em seguida, acesse a URL do repositório de exemplo (aplicativo MyShuttle2 da Microsoft Connect 2016). Uma vez na página do repositório, clique no botão Fork na parte superior direita da página.

Aguarde o processo de fork terminar. No final, você terá o repositório chamado “nome de usuário/MyShuttle2” na sua conta do GitHub, ao qual você tem acesso total.
3. Agora, adicione um novo arquivo ao repositório chamado Jenkinsfile. Um Jenkinsfile é um arquivo de texto que contém a definição de um Pipeline do Jenkins. Este arquivo deve estar dentro do repositório de código-fonte.
Na página do seu repositório, clique em Adicionar arquivo -> Criar novo arquivo.

4. Digite Jenkinsfile como o nome do novo arquivo. Em seguida, copie o código abaixo e cole-o no seu Jenkinsfile.
- O termo pipeline é um conjunto de instruções escritas em código para entrega contínua.
- A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
- A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.
Este Jenkinsfile é apenas um exemplo básico de um script de pipeline. Na produção, os scripts de pipeline serão mais complexos e incluirão múltiplas ações em um ou todos os estágios.
Após escrever o código, seu arquivo terá a aparência da captura de tela abaixo.

5. Role até o final da página e clique em Commit new file.

Agora você tem um Jenkinsfile no seu repositório.

6. Por fim, copie a URL do repositório. Para fazer isso, clique em Code e clique no botão Copy. Você precisará da URL resultante durante a criação do pipeline Jenkins CI CD.

Criando um Jenkins CI CD Pipeline
O desenvolvimento de uma funcionalidade envolve muitas mudanças de código. Entre cada mudança de código, há uma série de tarefas a serem executadas. Essas tarefas podem incluir a confirmação de alterações, compilação, teste e empacotamento.
Serviços de automação como o Jenkins ajudam a tornar essas etapas rápidas e livres de erros.
1. Abra um navegador, acesse sua URL do Jenkins e faça login.
2. No Painel do Jenkins, clique na opção New Item no menu à esquerda.

3. Digite o nome do novo pipeline. Para este tutorial, você o nomeará demoPipeline e selecione o modelo Pipeline. Clique em OK para finalizar.

4. Verifique a caixa do projeto GitHub na aba Geral na página de configuração. Em seguida, cole a URL do repositório que você copiou anteriormente na caixa URL do Projeto.

5. Role para baixo até a seção Disparadores de Compilação e marque a caixa Disparador de gatilho do GitHub para polling GITScm, como na captura de tela abaixo.

6. Em seguida, role mais para baixo até a seção Pipeline e selecione/especifique os seguintes valores:
- Definição: Script de Pipeline do SCM
- SCM: Git
- URL do Repositório: Sua URL do repositório

7. Role até o final da página e confirme que o valor de Caminho do Script é Jenkinsfile. Esse valor referencia o Jenkinsfile que você criou anteriormente ao preparar seu repositório do Github. Por fim, clique em Salvar.

Configurando um Webhook no GitHub
Para o Jenkins executar um novo trabalho, primeiro você deve criar um webhook no repositório do GitHub. Esse webhook notificará o Jenkins assim que ocorrer um novo push no repositório.
Siga as etapas abaixo para criar um Webhook.
1. Acesse a página de Configurações e clique na aba Webhooks em seu repositório GitHub. Na página Webhooks, clique em Adicionar webhook.

2. Especifique o URL do seu Jenkins e adicione /github-webhook/ no campo de URL do Payload. Por exemplo, HTTP://jenkinsURLaqui/github-webhook/.
Também, altere o valor do Tipo de Conteúdo para application/json.

3. Na seleção de Quais eventos você gostaria de acionar este webhook, clique na opção Deixe-me selecionar eventos individuais.

4. Role para baixo e marque as caixas de seleção Pushes e Pull requests. Essas opções garantirão que o GitHub envie um payload para o Jenkins durante esses eventos específicos.

5. Valide o webhook clicando no botão Adicionar webhook na parte inferior. Se a validação do webhook ocorrer bem, você verá uma notificação no topo da página semelhante à captura de tela abaixo.

Executando e Acionando o Trabalho de Canalização de CI CD do Jenkins
Agora que você criou e configurou sua canalização, como saber se ela funciona? O Jenkins fornece um plugin de Visualização de Estágio da Canalização para ajudá-lo a visualizar o status da canalização.
1. Para abrir o status da canalização, abra a canalização no Jenkins e clique em Status. Como você pode ver abaixo, o status da Visualização de Estágio mostra Nenhum dado disponível porque não houve um evento que acionaria a canalização.

2. Para gerar dados iniciais de compilação, clique em Build Now e aguarde o término do processo de compilação. Como pode ver abaixo, a Visualização de Estágio agora tem uma entrada, indicando que não há alterações nesta compilação.

3. Agora, teste o pipeline ao enviar um novo arquivo fictício para o repositório. Para fazer isso, volte ao seu repositório no GitHub e clique em Add File —> Criar novo arquivo.
Insira dummy como nome do novo arquivo e certifique-se de adicionar conteúdo.

Por fim, clique em Commit new file na parte inferior da página.
4. Volte à página de status do seu pipeline no Jenkins e você deverá ver uma nova entrada de compilação com um commit, conforme mostrado abaixo.

Conclusão
Ao longo deste tutorial, você aprendeu como configurar um pipeline CI/CD do Jenkins para automatizar o ciclo de vida de desenvolvimento de software. Você também aprendeu como usar o Jenkins para manter uma sequência de ações para CI em um projeto de software.
Você acha que o pipeline CI/CD do Jenkins é uma estratégia que aplicaria aos seus projetos? Ou há outra que já usa e acredita ser uma solução de CI/CD melhor?