Pipeline de CI/CD
Uma pipeline de CI/CD é uma “esteira de automação” que garante que o código saia do computador do desenvolvedor e chegue ao ambiente de produção de forma rápida, padronizada e segura.
Ao realizar um git push para o repositório, o GitLab CI/CD inicia automaticamente um fluxo de trabalho que compreende:
- Code Quality: Linting e análise estática.
- Security (SAST): Varredura de vulnerabilidades no código fonte.
- Testing: Execução de testes unitários e de integração.
- Build: Criação da imagem Docker (veja docker).
- Release: versionamento_semantico e publicação no registry.
- Deploy: Atualização automática no cluster_kubernetes.
Como funciona no projeto?
Toda a inteligência da pipeline reside no arquivo .gitlab-ci.yml na raiz do projeto. Ele organiza o trabalho em:
- Stages (Estágios): As fases do processo (ex: build, test, deploy).
- Jobs (Tarefas): O que é executado de fato (ex: run-unit-tests, docker-build). Jobs de um mesmo estágio rodam em paralelo.
Para detalhes técnicos, consulte a Documentação Oficial do GitLab.
A pipeline do Gitlab é dividida em Estágios (test, build, deploy) e em cada estágio, um ou mais jobs são executados (ex: production:test-python, production:build-k8s e production:deploy-k8s).
Repositório TCE.Templates
Para evitar a repetição de código (“Don't Repeat Yourself”), utilizamos os CI/CD Components. Em vez de configurar cada passo do zero, você importa blocos prontos da nossa biblioteca central: TCE.Templates.
Pense nos componentes como funções: você os chama no seu arquivo YAML e passa inputs (parâmetros) para definir comportamentos específicos (ex: versão do Python, porta do serviço, etc).