Gitea

1 post

Implementando um Pipeline de Desenvolvimento com Jenkins, Gitea e Docker


Implementando um Pipeline de Desenvolvimento com Jenkins, Gitea e Docker

No mundo do desenvolvimento de software, a automatização de processos é fundamental para garantir a eficiência e a qualidade do produto final. Uma das formas mais eficazes de automatizar o fluxo de trabalho de desenvolvimento é através da implementação de um pipeline de integração contínua e entrega contínua (CI/CD). Neste artigo, vamos explorar como criar um pipeline de desenvolvimento utilizando três ferramentas poderosas: Jenkins, Gitea e Docker.

Introdução ao Pipeline de Desenvolvimento

Um pipeline de desenvolvimento é uma série de etapas automatizadas que transformam o código-fonte em um produto de software pronto para uso. Essas etapas podem incluir compilação, testes, empacotamento e implantação. A automatização desse processo permite que os desenvolvedores se concentrem em escrever código, enquanto o pipeline cuida das tarefas repetitivas e propensas a erros.

Ferramentas Utilizadas

  • Jenkins: Uma ferramenta de automação de software de código aberto que permite a integração contínua e a entrega contínua. O Jenkins pode ser estendido com uma vasta gama de plugins para suportar diferentes tecnologias e ambientes.
  • Gitea: Um serviço de hospedagem de código-fonte de código aberto, semelhante ao GitHub. Ele permite que os desenvolvedores colaborem em projetos, rastreiem problemas e gerenciem o código-fonte.
  • Docker: Uma plataforma de contêinerização que permite aos desenvolvedores empacotar aplicações e suas dependências em um ambiente virtualizado que pode ser executado em qualquer lugar.

Configurando o Ambiente

Antes de começar a configurar o pipeline, é necessário ter as ferramentas instaladas e configuradas. Vamos supor que você já tenha um servidor Linux (como Ubuntu) pronto para uso.

Instalando o Gitea

Para instalar o Gitea, siga os passos abaixo:

  1. Baixe o arquivo binário do Gitea:
  2. wget https://dl.gitea.io/gitea/1.16.3/gitea-1.16.3-linux-amd64.tar.gz
  3. Extraia o arquivo:
  4. tar -zxvf gitea-1.16.3-linux-amd64.tar.gz
  5. Mova os arquivos para o diretório desejado:
  6. sudo mv gitea-1.16.3-linux-amd64 /var/gitea
  7. Crie um usuário para o Gitea:
  8. sudo adduser gitea
  9. Configure o Gitea para iniciar como um serviço:
  10. sudo nano /etc/systemd/system/gitea.service

    Adicione o seguinte conteúdo ao arquivo:

    [Unit]
    Description=Gitea (Git with a cup of tea)
    After=syslog.target network.target
    
    [Service]
    User=gitea
    Group=gitea
    WorkingDirectory=/var/gitea
    ExecStart=/var/gitea/gitea web
    
    [Install]
    WantedBy=multi-user.target
  11. Inicie o serviço do Gitea:
  12. sudo systemctl start gitea
  13. Habilite o serviço para iniciar na inicialização:
  14. sudo systemctl enable gitea

Instalando o Docker

Para instalar o Docker, siga os passos abaixo:

  1. Atualize o sistema:
  2. sudo apt update
  3. Instale as dependências necessárias:
  4. sudo apt install 
        ca-certificates 
        curl 
        gnupg 
        lsb-release
  5. Adicione a chave GPG oficial do Docker:
  6. sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  7. Adicione o repositório do Docker ao seu sistema:
  8. echo 
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  9. Instale o Docker:
  10. sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  11. Verifique se o Docker foi instalado corretamente:
  12. sudo docker run hello-world

Instalando o Jenkins

Para instalar o Jenkins, siga os passos abaixo:

  1. Adicione a chave GPG do Jenkins:
  2. wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
  3. Adicione o repositório do Jenkins:
  4. sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > 
        /etc/apt/sources.list.d/jenkins.list'
  5. Atualize o sistema:
  6. sudo apt update
  7. Instale o Jenkins:
  8. sudo apt install jenkins
  9. Inicie o serviço do Jenkins:
  10. sudo systemctl start jenkins
  11. Habilite o serviço para iniciar na inicialização:
  12. sudo systemctl enable jenkins

Configurando o Pipeline

Agora que temos todas as ferramentas instaladas, vamos configurar o pipeline de desenvolvimento.

Configurando o Jenkins

Após a instalação, acesse o Jenkins através do seu navegador em http://seu-servidor:8080. Siga os passos para completar a configuração inicial.

Instalando Plugins

Para integrar o Jenkins com o Gitea e o Docker, é necessário instalar alguns plugins. Acesse o painel de administração do Jenkins e navegue até “Gerenciar Jenkins” > “Gerenciar Plugins”. Instale os seguintes plugins:

  • Gitea Plugin
  • Docker Plugin
  • Pipeline Plugin

Criando um Novo Pipeline

Clique em “Novo Item”, escolha “Pipeline” e dê um nome ao seu projeto. Em “Definição”, selecione “Pipeline script” e adicione o seguinte script:

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                git 'https://seu-servidor/seu-usuario/seu-repositorio.git'
            }
        }
        stage('Build') {
            steps {
                sh 'docker build -t seu-servidor/seu-projeto:latest .'
            }
        }
        stage('Test') {
            steps {
                sh 'docker run seu-servidor/seu-projeto:latest ./run-tests.sh'
            }
        }
        stage('Deploy') {
            steps {
                sh 'docker push seu-servidor/seu-projeto:latest'
            }
        }
    }
}

Configurando o Gitea

No Gitea, crie um novo repositório para o seu projeto. Em seguida, configure um webhook para notificar o Jenkins sempre que houver uma nova commit.

  1. Navegue até o seu repositório no Gitea.
  2. Clique em “Configurações” > “Webhooks”.
  3. Adicione um novo webhook com a URL http://seu-servidor:8080/gitea-webhook/.

Configurando o Docker

Certifique-se de que o Dockerfile e o script de testes estejam configurados corretamente no seu repositório. O Dockerfile deve construir a imagem da sua aplicação, e o script de testes deve executar os testes automatizados.

Executando o Pipeline

Com tudo configurado, faça um commit no seu repositório no Gitea. O webhook notificará o Jenkins, que iniciará o pipeline. Você pode acompanhar o progresso do pipeline no painel do Jenkins.

Conclusão

A implementação de um pipeline de desenvolvimento com Jenkins, Gitea e Docker pode parecer complexa à primeira vista, mas os benefícios em termos de eficiência e qualidade do software são inegáveis. Ao automatizar o processo de integração contínua e entrega contínua, os desenvolvedores podem se concentrar no que realmente importa: escrever código de alta qualidade.

Palavras-chave

pipeline, Jenkins, Gitea, Docker, CI/CD, integração contínua, entrega contínua, automação, desenvolvimento de software, DevOps