Essa é uma revisão anterior do documento!
Conceitos: Jobs e Estágios
Como criar uma pipeline de CI/CD
Para implementar as pipelines do GitLab, é importante saber que ela funciona com Jobs organizados em Estágios, como uma linha de montagem.
Vamos apresentar brevemente esses conceitos pois, com a biblioteca TCE.Templates, não será necessário escrever os jobs na mão — apenas saber como eles funcionam.
Para mais informações, veja: CI/CD Jobs e CI/CD Pipelines.
Job
Cada Job é um script (definido por nós, desenvolvedores) que realiza alguma tarefa: executar um teste, fazer o versionamento, realizar o deploy…
Um exemplo de job de testes seria:
test-job: # Nome do job, pode ser qualquer nome image: python:3.10-alpine stage: test before_script: - pip install pytest script: - pytest # Comando que efetivamente executa os tests allow_failure: false tags: - docker-pipes-runner # Servidor onde ele será executado
test-job— nome do Job.image: python:3.10-alpine— roda dentro de um container docker com essa imagem.stage: test— será executado durante o estágio de testes.script: pytest— o comando que executa os testes.before_script: pip install pytest— instala a dependência antes de rodar.allow_failure: false— se opytestretornar erro, interrompe os próximos estágios.
Dica: O allow_failure: false funciona como um Quality Gate: previne que código com erros chegue à produção.
Estágios
Se os Jobs são as tarefas, os Estágios são o cronograma da linha de montagem. Eles definem a ordem de execução: o estágio 2 só começa quando o estágio 1 terminar com sucesso. Jobs no mesmo estágio rodam em paralelo.
# A ordem aqui define a ordem de execução stages: - lint # 1. Verifica estilo e erros de sintaxe - tests # 2. Executa os testes automatizados - sonar # 3. Analisa cobertura e segurança (Quality Gate) - semantic-release # 4. Gera versão e Changelog se tudo acima passou - build # 5. Gera o pacote/imagem da nova versão - deploy # 6. Publica no ambiente de destino