Alura > Cursos de DevOps > Cursos de Builds > Conteúdos de Builds > Primeiras aulas do curso Integração Contínua: testes automatizados e pipeline no Github Actions

Integração Contínua: testes automatizados e pipeline no Github Actions

Conhecendo o C.I. - Apresentação

Olá, sou Leonardo Sartorello e serei seu instrutor neste curso de integração contínua em que acompanharemos a história do Bruno, que está começando sua carreira e acabou de ingressar na nossa empresa, na área de computação.

Nas próximas aulas, vamos aprender a executar testes automatizados já escritos por alguma aplicação, bem como criar uma rotina de integração contínua para executá-los de forma automática. Além disso, estudaremos estratégias para rodar esses testes em vários ambientes distintos. Utilizaremos principalmente o GitHub Actions, uma ferramenta de CI e CD que tem se tornado bastante popular recentemente.

Este curso é voltado para iniciantes na área de CI que já conhecem alguns conceitos de Linux e como executar comandos no terminal. Fazendo esse treinamento, você criará sua primeira rotina de integração contínua para automatizar parte das tarefas do seu dia a dia ao desenvolver uma aplicação.

Ficou empolgado? Então, vamos lá!

Conhecendo o C.I. - Conhecendo a aplicação

Link da API usada pelo instrutor

Trabalhamos numa empresa de TI e temos um novo colega no nosso time de DevOps, o Bruno. As primeiras tarefas dele são acompanhar o repositório de uma aplicação e executar os testes escritos para ela, baixando o projeto em sua máquina e rodando esses testes.

O Bruno compreende que os testes são importantes porque impedem que nossa aplicação "quebre" devido a uma atualização que pode ter criado algum erro de lógica ou outro tipo de bug, porém ele constatou ser muito chato executar esses testes repetidamente. Buscando uma maneira de automatizar essa tarefa, ele descobriu o conceito de integração contínua ou CI, comumente representado pelo símbolo de infinito composto por segmentos de várias cores. Na integração contínua, podemos criar uma rotina que será executada sempre que a aplicação sofrer uma atualização, automatizando essa tarefa.

Representação de integração contínua. Um símbolo de infinito composto por 6 segmentos de cores diferentes: vermelho, amarelo, azul, roxo, verde e azul novamente.

A seguir, vamos dar uma olhada no código em que o Bruno roda esses testes, para podermos acompanhá-lo e aprender como esses processos funcionam.

Na página do repositório (disponibilizada na plataforma da Alura), constatamos que nossa aplicação é escrita 100% na linguagem Go, então já sabemos que precisaremos dela para rodar os testes. Além disso, vemos um arquivo docker-compose.yml que nos indica que a aplicação tem uma parte Docker.

Vamos abrir esse arquivo para verificar o que será executado no Docker. Na linha 4, encontramos uma imagem do Postgres, um banco de dados relacional. Da linha 5 a 8, temos as variáveis de ambiente para que nossa aplicação tenha acesso a esse banco e, na sequência, verificamos as portas utilizadas e o volume onde os dados serão guardados.

Na linha 15, há outra imagem: o pgAdmin, ou Postgres Admin. Trata-se de uma ferramenta que nos ajudará a visualizar melhor o que existe dentro do banco de dados. Geralmente ele é usado na fase de desenvolvimento, mas também podemos subi-lo nos testes, sem problemas.

Em resumo, para realizar os testes precisaremos do Go, do Docker e do Docker Compose. Na sequência deste vídeo, deixaremos um passo a passo de preparação do ambiente para te ajudar na instalação dessas ferramentas.

Conhecendo o C.I. - Subindo o projeto

Agora que estamos com o ambiente preparado, podemos retraçar o caminho que o Bruno fazia para testar a aplicação. De início, vamos acessar a página do GitHub da aplicação (disponibilizada na plataforma da Alura), clicar no botão verde "Code" e copiar a URL do repositório.

Na nossa máquina, vamos criar uma pasta para esse projeto chamada CI e abri-la no Visual Studio Code. No terminal, executaremos o comando git clone seguido do endereço do repositório. Ao clonar, será criada outra pasta, chamada api_rest_gin_go_2-validacoes-e-testes. Para simplificar, vamos mover todo o conteúdo para a pasta CI e remover a que ficou vazia.

Podemos limpar o terminal com clear e, em seguida, executar o comando ls para checar se temos todos os arquivos onde queremos — o retorno deve ser a mesma lista de pastas e arquivos que observamos no painel "Explorer", à esquerda no VS Code.

O próximo passo é subir o banco de dados. Basta executarmos o comando docker-compose up. No terminal, seremos informados que ocorreu um erro: o diretório "pg_notify" não foi encontrado. Vamos pressionar "Ctrl + C" para encerrar a execução do docker-compose. Para solucionar o problema, verificaremos o arquivo docker-compose.yml. Sabemos que, se um diretório não foi encontrado, há algo de errado em volumes — vamos retirar o ponto no início da linha 12:

volumes:
    - /postgres-data:/var/lib/postgresql/data

Vamos salvar a alteração e, em seguida, subir o banco de dados novamente. Dessa vez, adicionaremos o -d para não travar nosso terminal: docker-compose up -d. Com esse processo finalizado, teremos nosso banco de dados no ar e podemos começar os testes.

Para subir a aplicação, executaremos o comando go run main.go. Assim, veremos que ela está em forma HTTP na porta 8080. Para testar, no navegador acessaremos o nosso IP na porta 8080 — no meu caso, ficará 192.168.1.23:8080.

O resultado será um texto "404 page not found", porém notamos que não é uma página padrão. Podemos acessar nosso IP sem informar a porta para verificar como é a página padrão, com o texto "Não foi possível acessar esse site". Essa diferença significa que teoricamente nossa aplicação está funcionando.

Para nos certificar, vamos acessar o IP na porta 8080 e adicionar /leo ao final da URL. Como retorno, veremos:

{"API diz": "E ai leo, Tudo beleza?")

Ou seja, nossa aplicação está no ar, funcionando corretamente. Na sequência, podemos começar a testá-la com os testes escritos especialmente para ela.

Sobre o curso Integração Contínua: testes automatizados e pipeline no Github Actions

O curso Integração Contínua: testes automatizados e pipeline no Github Actions possui 68 minutos de vídeos, em um total de 50 atividades. Gostou? Conheça nossos outros cursos de Builds em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Builds acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri powered by ChatGPT

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas