Engenharia de Qualidade e CI/CD para Repositórios Content-as-Code: Sincronização WokManager–DOMjudge e Validação Contínua

Esteira CI/CD em Docker/GitHub/GitLab CI com validação de schema, compilação multi-linguagem, testes negativos e publicação atômica

[object Object]
Feedback Formativo
Sem CEP
Data de Publicação

14/11/2026

Data de Modificação

14/11/2026

Código: TCC 13 · Trilha: Trilha 4: IHC, DevOps e Estudos Empíricos · Status: Disponível · Modalidade: Engenharia de Software / DevOps + Ferramenta · Perfil: Individual · Complexidade: Média · Regime Ético: Sem CEP (Computacional)

1. Contexto e Problema

No estado atual do WokManager (Python/Flask), o repositório de problemas funciona sob o paradigma content-as-code versionado em Git, porém cap05-implementacao.tex (§ 5.5) aponta explicitamente duas pendências operacionais: “sua automatização em CI/CD constitui uma etapa de consolidação do repositório” e “a importação ponta a ponta automatizada não compõe o baseline descrito nesta qualificação”.

Hoje, o docente ou revisor precisa verificar e publicar pacotes no DOMjudge manualmente, ficando sujeito a dessincronização de versões. Além disso, alterações manuais ou assistidas por IA via Git (Pull Requests) carecem de uma esteira contínua completa que execute validação de schema, compilação em múltiplas linguagens, execução de soluções canônicas e testes negativos (smoke tests) contra contra-exemplos de MISCONCEPTION e PERFORMANCE.

2. O que será feito (Objetivos Técnicos e Escopo)

  1. Projetar e implementar um módulo de sincronização automatizada bidirecional entre o WokManager e a API REST do DOMjudge (autenticação segura, empacotamento ZIP compatível, verificação de hash de versão e rollback em caso de falha);
  2. Construir uma esteira CI/CD (GitHub Actions / GitLab CI em contêineres Docker reproduzíveis) que valide automaticamente a cada commit/PR: conformidade wok-scheme.json, declarações de proveniência, passagem das soluções canônicas e falha esperada nos cenários MISCONCEPTION e PERFORMANCE;
  3. Melhorar a experiência de autoria (Developer/Author Experience) no WokManager com visualização de diffs YAML/Markdown e painel de status da esteira;
  4. Medir confiabilidade (taxa de detecção de defeitos de empacotamento injetados sinteticamente), tempo médio de build/deploy e cobertura de testes automatizados do próprio WokManager.

3. Perguntas para você refletir

Se você se identifica com as questões abaixo, este tema pode ser uma boa escolha:

  • Quais garantias transacionais (idempotência, hash de versão, rollback) são necessárias ao sincronizar pacotes entre Git, WokManager e um DOMserver em execução?
  • Como estruturar testes negativos em CI para garantir que um caso de teste adicionado a MISCONCEPTION realmente reprove um erro conhecido e não aceite código bugado?
  • Como tornar o feedback da esteira CI compreensível para docentes revisores não especialistas em DevOps?

4. Divisão Sugerida (TCC 1 e TCC 2)

  • TCC 1: Auditoria do código atual do WokManager e da API REST do DOMjudge, projeto da arquitetura de sincronização atômica e da esteira CI/CD.
  • TCC 2: Implementação dos pipelines, módulo de publicação ponta a ponta com testes de integração em Docker e avaliação por injeção controlada de defeitos de empacotamento.

5. Entregáveis e Métricas de Avaliação

6. Pré-requisitos e Tecnologias Sugeridas

  • Base necessária: Python/Flask, Git, Docker, APIs REST e fundamentos de Engenharia de Software / Testes.
  • Tecnologias e conceitos envolvidos: GitHub Actions / GitLab CI, pytest, Docker Compose, DOMjudge API, JSON Schema validation.

7. Origem e Ponto de Partida

  • Origem na pesquisa WOKDEX:
    • cap05-implementacao.tex (§ 5.5 — abordagem content-as-code do WokManager e pendências de CI/CD e importação ponta a ponta);
    • apendices/arquivo-editorial/cap05-wokmanager-galeria.tex (documentação tela a tela dos módulos do WokManager);
    • apendices/docs/wok-format/.
  • Consulte também o guia de Metodologia e Ética.

8. Como demonstrar interesse

Antes de agendarmos uma conversa, prepare respostas curtas para:

  1. Por que esse tema chamou sua atenção?
  2. Você tem experiência prévia com GitHub Actions / GitLab CI ou prefere aprofundar primeiro na API REST do DOMjudge e no WokManager?
  3. Qual sua disponibilidade semanal estimada para o TCC?
De volta ao topo