Crie um trabalho de compilação no Jenkins para automatizar implantações na web

Construir e implantar uma aplicação pode ser uma tarefa difícil. Por que não usar um Trabalho de Compilação do Jenkins para automatizar todo o processo? Você se concentra na construção enquanto o Jenkins lida com a implantação de código.

Neste tutorial, você aprenderá como automatizar a implantação do seu código usando o Jenkins para economizar tempo, permitindo que você se concentre em outras tarefas simultaneamente.

Preparado? Hora de mergulhar!

Pré-requisitos

Este tutorial inclui demonstrações práticas. Se deseja acompanhar, certifique-se de ter o seguinte:

Embora o repositório mostrado nas capturas de tela abaixo seja ligeiramente diferente do vinculado acima, uma vez bifurcado, você usará uma URL de repositório diferente também.

Criando um Trabalho de Compilação no Jenkins

O Jenkins é um servidor de automação de código aberto que auxilia na automação do ciclo de vida de desenvolvimento de software. Este ciclo inclui compilação, teste e implantação, o que facilita a integração contínua e a entrega contínua.

Nesta demonstração, você passará pelo processo de criação de um trabalho de compilação no Jenkins. Um trabalho de compilação é geralmente uma configuração para executar tarefas autonomamente para compilar/empacotar software.

  1. Inicie seu navegador favorito, acesse http://localhost:8080/ e faça login no painel do Jenkins. A porta 8080 é a porta padrão para acessar o painel do Jenkins.

2. No Painel do seu Jenkins, clique no botão Novo Item no painel esquerdo para iniciar a criação de um trabalho de compilação. Isso redirecionará o navegador para uma nova página de trabalho.

Creating a new Jenkins Job

3. Em seguida, insira um nome de projeto de sua preferência para o trabalho de compilação no campo de entrada mostrado abaixo. Para este exemplo, o nome do projeto é webDeploy.

Selecione a opção do projeto Freestyle para habilitar a criação de trabalhos, ações de script pós-compilação e configurar os gatilhos de compilação do projeto, em seguida, clique em OK. Você será redirecionado para a página de configuração do trabalho que verá no próximo passo.

Creating a Jenkins project

4. Clique na guia Geral e marque a caixa Projeto do GitHub para vincular um gerenciador de código fonte para que o Jenkins saiba de onde extrair seu código. Esta demonstração usa o Git como gerenciador de código fonte para o projeto de exemplo hospedado no GitHub que você bifurcou anteriormente. Cole a URL do repositório do GitHub da sua conta do GitHub no campo URL do Projeto abaixo.

Linking Jenkins to a source code manager

5. Por fim, clique na guia Gerenciamento de Código Fonte, em seguida, selecione Git, que é o seu gerenciador de código fonte.

Copie e cole esta URL do repositório do GitHub (https://github.com/Claradev32/webDeploy.git) no campo de entrada. Clique no botão Salvar para salvar suas configurações atuais.

Linking Jenkins to Source Code Manager (Git)

Criando Credenciais para um Projeto Jenkins

Talvez você prefira manter seu repositório privado, o que é comum para projetos de clientes. Se for o caso, você precisará criar credenciais para autorizar o Jenkins a clonar seu projeto do GitHub.

Para criar credenciais para o seu projeto Jenkins, você deve primeiro gerar e adicionar uma chave SSH à sua conta do GitHub:

1. Abra o terminal do seu Ubuntu e execute o comando abaixo para gerar uma chave SSH com ed25519 como o tipo de chave. Substitua [email protected] pelo seu endereço de e-mail do GitHub para adicioná-lo como um comentário à chave SSH que você irá gerar.

ssh-keygen -t ed25519 -C "[email protected]"

2. Salve sua chave SSH pública com o seguinte:

  • Especifique um local de salvamento para a chave SSH e pressione Enter. Se você não o fizer, o comando salvará a chave SSH em um local padrão, como mostrado abaixo.
  • Digite uma frase de acesso segura para a chave SSH, pressione Enter para confirmar a frase de acesso, e você verá a saída de sua chave SSH pública.
  • Observe o local de sua chave SSH gerada, pois você a adicionará à sua conta do GitHub nos passos seguintes.
Adding a Passphrase to the SSH key

3. Faça login no GitHub em seu navegador da web e acesse a página de Configurações da Conta.

4. Clique no link Chaves SSH e GPG no painel esquerdo e então clique em Nova Chave SSH, como mostrado abaixo, para configurar sua nova chave SSH.

Creating a Github SSH key

5. Por fim, insira o título preferido para a chave SSH. O título é apenas para fins de documentação interna. Cole sua chave SSH, do arquivo previamente salvo, no campo de entrada Chave, e clique em Adicionar Chave SSH para salvar a chave.

Lembre-se de que esta é sua chave pública e não sua chave privada!

Saving New SSH Key

Adicionando a Chave Privada SSH às Credenciais do Jenkins

Agora que você criou seu par de chaves SSH para usar como credencial do Jenkins, você também deve adicionar sua chave privada SSH às credenciais do Jenkins para autorizar o acesso do Jenkins ao seu repositório GitHub. Mas antes, anote a URL SSH do seu repositório GitHub.

1. Acesse a página do seu repositório GitHub, clique em Código → SSH, e clique no ícone de cópia abaixo para copiar a URL SSH para a área de transferência.

Noting Down GitHub SSH URL

2. Em seguida, vá para o seu painel do Jenkins, clique em Gerenciar Jenkins para acessar a página de configurações do seu projeto.

Accessing Jenkins Settings

3. Role para baixo e clique na opção Gerenciar Credenciais embaixo da seção Segurança para visualizar a lista de suas credenciais do Jenkins.

Accessing Jenkins Credentials

4. Clique em Jenkins na página Credenciais mostrada abaixo para acessar a página “Sistema”, onde você pode adicionar novas credenciais.

Accessing System Page to Add Credentials

5. Agora, na página Sistema, passe o mouse sobre a opção Credenciais Globais (irrestritas) para exibir o menu suspenso e clique no ícone de seta para baixo.

Clique em Adicionar Credenciais no menu suspenso. A página será redirecionada para um formulário onde você configurará as novas credenciais mostradas no próximo passo.

System Page

6. Selecione Nome de Usuário SSH com chave privada no primeiro campo de entrada e insira um nome de usuário do projeto no campo Nome de Usuário. Neste exemplo, o nome de usuário é CI/CD.

Neste caso, o nome de usuário é puramente para documentação interna e não é usado para autenticação.

Setting a Username for Jenkins Global Credentials

7. Execute o comando abaixo para visualizar sua chave privada SSH, alterando o local para onde sua chave está salva, conforme mostrado abaixo (a chave abaixo está localizada no diretório home). Anote sua chave privada SSH, pois você a adicionará às suas credenciais do Jenkins na próxima etapa.

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. Depois de anotar sua chave privada SSH, volte para a página de credenciais globais (irrestritas).

Insira a frase secreta que você definiu na seção “Criando credenciais para um projeto Jenkins” (passo dois) no campo de entrada Frase secreta, e clique em OK. Fazendo isso, autoriza o acesso do Jenkins ao seu repositório do GitHub.

Se você não incluiu uma senha ao criar a chave SSH, clique em Inserir diretamente e clique no botão Adicionar. Insira sua chave privada SSH no campo de entrada Chave, conforme mostrado abaixo, e pressione o botão OK para salvar as credenciais.

Adding GitHub SSH key to Jenkins Credentials

8. Volte para o seu painel do Jenkins, passe o mouse sobre seu projeto e clique no ícone de seta para baixo, em seguida, escolha Configurar, conforme mostrado abaixo. A página será redirecionada para a página de configuração do seu projeto.

Configuring Jenkins Project

10. Finalmente, selecione o nome de usuário das credenciais no campo de seleção (do sexto passo da seção “Adicionando Chave Secreta às Credenciais do Jenkins”). O Jenkins aplica o princípio CID por padrão para garantir a integração contínua e implantação do seu projeto.

Connecting Jenkins to GitHub

Configurando Acionadores de Compilação e Ações Pós-Compilação

Você agora criou com sucesso o esqueleto de um trabalho de compilação. Mas se você fizer alterações regularmente em seu projeto, será necessário redeploy manualmente a cada vez? Por que não configurar acionadores de compilação? Os acionadores de compilação redeploy automaticamente as alterações do seu projeto enviadas para o GitHub.

1. Na página de configuração do seu projeto, clique na guia Acionadores de compilação, e marque a opção Gatilho de gancho do GitHub para pesquisa GITScm. Essa opção permite redeploy automático das alterações do seu projeto.

Configuring build triggers

2. Clique na guia Compilação, clique em Adicionar etapa de compilação e selecione Executar shell para criar um script que será executado sempre que o Jenkins baixar uma nova versão do seu código.

Creating a Build Script

O script shell que você criar depende do seu ambiente de desenvolvimento. Se estiver no Windows, o Windows executará o script; o mesmo vale para outros sistemas operacionais.

3. Digite os comandos de shell abaixo e clique em Salvar para salvar o script de compilação. Após salvar as alterações, a página redireciona de volta para o painel do seu projeto.

Os comandos abaixo fazem o pull do seu código a partir do seu local remoto de origem (origin master) e com NodeJS NPM install (npm install) as dependências necessárias para executar o seu projeto. Os comandos são executados cada vez que você faz uma solicitação de push para o seu gerenciador de código fonte.

Este projeto específico utiliza NodeJS para dependências, mas o seu projeto em particular pode não utilizar.

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. Agora, no painel do seu projeto, clique em Build Now para executar a compilação.

Running the Build

5. Role para baixo até o histórico de compilações para ver o status da compilação. Se a compilação foi bem-sucedida, você verá uma saída semelhante à captura de tela abaixo.

Viewing Successful Build

Se a compilação falhar, você verá a saída mostrada abaixo.

Failed build history

6. Em seguida, role para cima e clique em Configure para configurar as ações pós-compilação do projeto.

Configuring Project’s Post Build Actions

7. Clique na aba Post Build Actions, depois clique em Add post-build action e escolha Git publisher. A página expande a seção de configurações do Git Publisher (próximo passo).

Accessing Git Publisher Post-Build Action

8. Por fim, habilite a opção Push Only If Build Succeeds e clique no botão Save para salvar as alterações. Ao habilitar esta opção, você informa ao Jenkins para implantar o código apenas quando uma execução da compilação for bem-sucedida.

Adding Post-Build Actions

Conclusão

Neste tutorial, você passou pelo processo de conectar o Jenkins ao seu sistema de gerenciamento de código-fonte. Você também criou um script de construção que é executado automaticamente quando o Jenkins baixa uma nova versão do seu código e configurou gatilhos de construção para automatizar implantações na web.

Agora, por que não poupar tempo automatizando a implantação da sua aplicação com um trabalho de construção do Jenkins?

Source:
https://adamtheautomator.com/jenkins-build-job/