🚀 Trilha CI/CD com Github action
Aprender a automatizar processos de integração contínua (CI) e entrega contínua (CD) utilizando GitHub Actions, desde conceitos básicos até pipelines avançados para diferentes tipos de aplicações.
📌 Pré-Requisitos
Antes de começar, é importante ter conhecimento básico sobre os seguintes tópicos:
1. Controle de Versão e GitHub
- Noções de Git (commits, branches, merges, pull requests).
- Conhecimento básico do GitHub (repositórios, issues, actions).
📚 Recursos:
2. Fundamentos de Desenvolvimento e Linha de Comando
- Experiência com linha de comando (CLI) e terminal.
- Conhecimento básico de uma linguagem de programação (Python, JavaScript, Java, C# ou outra).
📚 Recursos:
3. Conceitos de DevOps e CI/CD
- Entender os princípios de DevOps e Integração Contínua/Entrega Contínua (CI/CD).
- Familiaridade com pipelines de CI/CD (mesmo que de forma teórica).
📚 Recursos:
4. Docker e Containers (Opcional, mas recomendado)
- Noções básicas sobre Docker e como criar containers.
- Compreender como funcionam imagens e containers.
📚 Recursos:
1. Fundamentos de CI/CD e GitHub Actions
🔹 O que é CI/CD? – Conceitos, benefícios e diferenciação entre CI (Continuous Integration) e CD (Continuous Deployment/Delivery).
🔹 Introdução ao GitHub Actions – Estrutura de workflows, actions, eventos e runners.
🔹 Primeiro Workflow no GitHub Actions – Criando e executando um workflow básico.
🔹 Explorando YAML – Como definir jobs, steps, actions e variáveis.
📚 Recursos:
- 📖 CI/CD Explained – DevOps
- 📖 GitHub Actions Documentation
- 🎥 YouTube: Introdução ao GitHub Actions
- 🛠️ Exemplo prático: Criando um workflow básico
2. Construção de Workflows para Integração Contínua (CI)
🔹 Gatilhos e eventos – Quando um workflow pode ser disparado (push, pull request, tags, schedule).
🔹 Execução de testes automatizados – Como rodar testes unitários e integração em diferentes linguagens (Python, JavaScript, Java, C#).
🔹 Linting e análise estática de código – Melhorando a qualidade do código com ESLint, Pylint, SonarCloud.
🔹 Cache e artefatos – Como otimizar builds e armazenar resultados.
📚 Recursos:
3. Desafio
O desafio é implementar uma automação de CI/CD usando Github Actions para um programa que permita realizar as seguintes buscas:
- Listar os órgãos, códigos e editais dos concursos públicos que se encaixam no perfil do candidato, tomando como base o seu CPF;
- Listar o nome, data de nascimento e o CPF dos candidatos que se encaixam no perfil do concurso tomando com base o Código do Concurso do concurso público;
A automação deve realizar as seguintes automações:
- Executar os testes automatizados
- Verificar a qualidade do código
- Quebrar o CI quando os testes falharem ou quando a qualidade for menor de 80%
- Registrar o docker do software no Github Package