Você sabia que o Jenkins possui suporte integrado para Integração Contínua/Entrega Contínua (CI/CD)? Implementar um pipeline de CI/CD do Jenkins com seu projeto pode melhorar significativamente o processo de desenvolvimento de software.
O Jenkins é uma das ferramentas de automação 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 seguir os exemplos.
Você 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.
- Seu 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 utiliza 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, vá para 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 término do processo de fork. Ao final, você terá o repositório chamado “nome de usuário/MyShuttle2” na sua conta do GitHub, com 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 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.
Depois de escrever o código, seu arquivo ficará parecido com a 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 depois no botão Copy. Você precisará da URL resultante durante a criação do pipeline Jenkins CI CD.

Criando um Pipeline Jenkins CI CD
Desenvolver 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 realização de mudanças, 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, vá para o seu URL do Jenkins e faça login.
2. No Painel do Jenkins, clique na opção New Item no menu do lado esquerdo.

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

4. Marque 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 de Disparadores de Compilação e marque a caixa Acionador de gatilho do GitHub para a consulta do 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 do Pipeline a partir 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 seja Jenkinsfile. Este valor faz referência ao Jenkinsfile que você criou anteriormente ao preparar seu repositório 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 GitHub. Este webhook notificará o Jenkins assim que ocorrer um novo push no repositório.
Siga as etapas abaixo para criar um Webhook.
1. Navegue até a página de Configurações e clique na aba Webhooks no seu repositório GitHub. Na página de Webhooks, clique em Adicionar webhook.

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

3. Na seleção Quais eventos você gostaria de acionar este webhook, clique na opção Permita-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 na parte superior da página semelhante à captura de tela abaixo.

Executando e Acionando o Trabalho de Pipeline CI CD do Jenkins
Agora que você criou e configurou seu pipeline, como saber se o pipeline funciona? O Jenkins fornece um plugin Visualização de Estágio de Pipeline para ajudá-lo a visualizar o status do pipeline.
1. Para abrir o status do pipeline, abra o pipeline 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 acionasse o pipeline.

2. Para gerar dados iniciais de compilação, clique em Compilar Agora e aguarde o processo de compilação ser concluído. Como você pode ver abaixo, a Visualização de Estágio agora possui uma entrada, indicando que não há alterações nesta compilação.

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

Finalmente, clique em Confirmar novo arquivo na parte inferior da página.
4. Volte para a página de status do seu pipeline no Jenkins, e você deverá ver uma nova entrada de compilação com um commit, como 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 cadeia de ações para CI em um projeto de software.
Você acha que o pipeline CI/CD do Jenkins é uma estratégia que você aplicaria aos seus projetos? Ou há outro que você já utiliza e acredita ser uma solução melhor para CI/CD?