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.

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 o pytest retornar 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.

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

Próximo

  • pres/gerti/devops/conceitos/jobs_e_estagios.1776452795.txt.gz
  • Última modificação: 17/04/2026 19:06
  • por lvinicius