Jobs - Os Blocos da Pipeline
Os jobs no GitLab são definidos dentro do .gitlab-ci.yml e podem incluir diferentes scripts. Cada job representa uma tarefa específica que será executada pelo GitLab Runner.
Estrutura Básica
executar_teste:
script:
- echo "Executando testes..."
criar_imagem:
script:
- echo "Criando imagem..."
push_imagens:
script:
- echo "Realizando upload das imagens"Componentes de um Job
Cada job pode ter:
- script: Lista de comandos a executar
- stage: Stage ao qual o job pertence (Stages)
- only/except: Regras para quando executar
- artifacts: Arquivos gerados que devem ser salvos
- dependencies: Jobs dos quais este depende (Dependências)
Exemplo Real: Build do Vault
No pipeline-gitlab, há um job específico para processar o vault:
build-app:
stage: build
script:
- ./scripts/update-vault.sh # Executa VaultService
- npm run build # Build do Next.js
artifacts:
paths:
- public/vault
- .nextEste job:
- Executa o script que chama a API do Grafo
- Processa todos os arquivos markdown
- Gera o grafo de conhecimento
- Salva os artifacts para uso posterior
Jobs Paralelos vs Sequenciais
Dentro do mesmo stage, jobs podem rodar em paralelo:
test-frontend:
stage: test
script: npm run test:frontend
test-backend:
stage: test
script: npm run test:backendEsses dois jobs rodam ao mesmo tempo, acelerando o pipeline.
Conceitos Relacionados
- Stages - Organização de jobs em etapas
- Dependências - Como criar dependências entre jobs
- O que é CI-CD - Fundamentos de CI/CD
- Gitlab - O que é - Plataforma que executa os jobs
- pipeline-gitlab - Exemplo completo de pipeline
- api-grafo - API processada durante os jobs de build
Boas Práticas
- Nomes descritivos: Use nomes claros como
build-vaultem vez dejob1 - Artifacts seletivos: Salve apenas o necessário para economizar espaço
- Cache inteligente: Use cache para
node_modules/e acelerar builds - Fail fast: Coloque testes no primeiro stage para falhar rápido
Exemplo Completo
Veja um exemplo completo de jobs organizados em stages no arquivo pipeline-gitlab.