Codex: Automação e CI/CD com o Codex

Última atualização: 2026-08-31

O modo não-interativo do Codex o torna ideal para integração CI/CD, habilitando revisão automatizada de código e garantia de qualidade.

📋 Pré-requisitos: Conhecimento básico de CI/CD, familiaridade com GitHub Actions

1. O Que Você Vai Aprender


2. O Papel do Codex em CI/CD

Papel Descrição Gatilho
Revisor de Código Auto-revisar PRs Ao criar PR
Gerador de Testes Auto-complementar testes Ao mudar código
Atualizador de Docs Auto-atualizar documentação Ao mudar API
Scanner de Segurança Verificar vulnerabilidades A cada commit

3. Integração com GitHub Actions

(1) Configuração Básica

YAML
# .github/workflows/codex-review.yml
name: Codex Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Codex Review
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          npm install -g @openai/codex
          git diff origin/main...HEAD | codex --quiet --sandbox readonly \
            "Review this PR's changes, focusing on: 1. Security vulnerabilities 2. Performance issues 3. Code style" \
            > review-comment.md
      - name: Post Review
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const comment = fs.readFileSync('review-comment.md', 'utf8');
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: comment
            });

▶ Exemplo 1: Revisão Automatizada de Alice

YAML
# Pipeline de revisão de PR de Alice
name: Auto Review

on:
  pull_request:

jobs:
  security-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Security Scan
        run: |
          codex --quiet --sandbox readonly \
            "Scan code for security vulnerabilities: SQL injection, XSS, sensitive data leaks"

  performance-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Performance Check
        run: |
          codex --quiet --sandbox readonly \
            "Analyze code performance issues: N+1 queries, memory leaks, unnecessary computation"

4. Geração Automatizada de Testes

(1) Geração de Testes Acionada por PR

YAML
name: Generate Tests

on:
  pull_request:
    paths:
      - 'src/**'

jobs:
  generate-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check Coverage
        run: |
          npm test -- --coverage
          COVERAGE=$(cat coverage/coverage-summary.json | jq '.total.lines.pct')
          if [ "$COVERAGE" -lt 80 ]; then
            echo "Coverage below 80%, generating tests..."
            codex --full-auto \
              "Supplement unit tests for files with insufficient coverage, target 80%"
          fi

(2) Geração de Testes Agendada

YAML
name: Weekly Test Update

on:
  schedule:
    - cron: '0 2 * * 1'  # Toda segunda às 2h da manhã

jobs:
  update-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Update Tests
        run: |
          codex --full-auto \
            "Check all source files, generate unit tests for files lacking them"

5. Portões de Qualidade

(1) Verificação de Qualidade de Código

YAML
name: Quality Gate

on:
  pull_request:

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Quality Check
        run: |
          RESULT=$(codex --quiet --sandbox readonly \
            "Evaluate code quality, score 1-10, criteria: readability, maintainability, security, performance")
          echo "$RESULT"
          SCORE=$(echo "$RESULT" | grep -oP 'Score: \K\d+')
          if [ "$SCORE" -lt 7 ]; then
            echo "Quality score below 7, blocking PR"
            exit 1
          fi

(2) Auto Fix + Revisão Manual

YAML
name: Auto Fix and Review

on:
  pull_request:

jobs:
  auto-fix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Auto Fix
        run: |
          codex --auto-edit \
            "Fix all lint errors and formatting issues"
          git diff > auto-fixes.patch
      - name: Upload Patch
        uses: actions/upload-artifact@v4
        with:
          name: auto-fixes
          path: auto-fixes.patch

6. Scanner de Segurança

YAML
name: Security Scan

on:
  push:
    branches: [main]
  pull_request:

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Security Audit
        run: |
          codex --quiet --sandbox readonly \
            "Perform security audit:
            1. Check for hardcoded keys and credentials
            2. Check SQL injection risks
            3. Check XSS risks
            4. Check insecure dependencies
            5. Check insecure API calls
            Output risk levels and remediation suggestions"

7. Controle de Custos

Estratégia Descrição
Limitar Gatilhos Apenas acionar em mudanças de caminhos críticos
Usar Modo Read-only Tarefas de revisão com --sandbox readonly
Escolher Modelo Adequado Leve para revisões, poderoso para geração
Cachear Resultados Não re-codificar código idêntico
Definir Timeouts Evitar tarefas longas consumindo tokens

❓ Perguntas Frequentes

P: O Codex em CI/CD é seguro? R: Usando --sandbox readonly apenas revisa sem fazer mudanças. Quando modificações são necessárias, use --auto-edit e revise manualmente os resultados.

P: Quanto custa cada execução de CI? R: Depende da complexidade da tarefa e modelo. Revisões simples ~$0.01-0.05/execução, geração complexa ~$0.1-0.5/execução. Considere usar DeepSeek para reduzir custos.

P: Pode substituir o SonarQube? R: Não inteiramente. O Codex se destaca em revisão em nível semântico, SonarQube se destaca em varredura em nível de regras. Eles se complementam.

P: Como evito que o Codex trave no CI? R: Defina um parâmetro timeout, use modo não-interativo, configure --approval-policy approve ou deny.

P: GitLab CI também pode usar o Codex? R: Sim. O Codex CLI é multi-plataforma e funciona com qualquer sistema de CI.


📖 Resumo


📝 Exercícios

  1. Básico (⭐): Crie um workflow GitHub Actions que auto-executa revisão de código do Codex em PRs.
  2. Intermediário (⭐⭐): Implemente geração automatizada de testes — quando cobertura cair abaixo de 80%, auto-complementar testes.
  3. Avançado (⭐⭐⭐): Desenhe um pipeline CI/CD completo: revisão de código → auto-fix → geração de testes → scanner de segurança → portão de qualidade.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%