[CI] Ativar execução dos testes automatizados no pipeline de CI - #945
WolgrandAP wants to merge 16 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
o único teste @SpringBootTest do projeto se chama ApiApplicationTests.java (termina em "Tests"), mas o Maven só procura arquivos terminados em "Test", conferi no log real do CI deste PR e essa classe nunca aparece entre os 249 testes executados; aceitar também o padrão "Tests" resolve. |
| - "apps/api/**" | ||
|
|
||
| jobs: | ||
| changes: | ||
| name: Detectar mudanças | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| backend: ${{ steps.filter.outputs.backend }} | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
| - uses: dorny/paths-filter@v3 | ||
| id: filter | ||
| with: | ||
| filters: | | ||
| backend: | ||
| - 'apps/api/**' | ||
|
|
||
| build: | ||
| name: Build do projeto back-end | ||
| needs: changes | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Baixar repositório | ||
| if: needs.changes.outputs.backend == 'true' | ||
| uses: actions/checkout@v5 | ||
|
|
||
| - name: Configurar JDK 21 | ||
| if: needs.changes.outputs.backend == 'true' | ||
| uses: actions/setup-java@v4 | ||
| with: | ||
| java-version: "21" | ||
| distribution: "temurin" | ||
| cache: maven | ||
|
|
||
| - name: Compilar aplicação com Maven (sem testes) | ||
| - name: Compilar aplicação com Maven | ||
| if: needs.changes.outputs.backend == 'true' | ||
| working-directory: ./apps/api | ||
| run: mvn clean package -Dmaven.test.skip=true | ||
| run: mvn clean package | ||
|
|
||
| - name: Salvar artefato gerado | ||
| if: needs.changes.outputs.backend == 'true' | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: backend-build | ||
| path: apps/api/target/*.jar | ||
| path: apps/api/target/*.jar |
There was a problem hiding this comment.
hoje os testes só rodam se o PR mexer em apps/api, e se a etapa que detecta isso falhar por instabilidade, o check fica "pulado" em vez de "reprovado" (contando como aprovado no merge). Removendo o job changes e sempre rodando os testes, os dois problemas somem juntos, o custo de rodar Maven num PR só de frontend é pequeno perto do risco de um check obrigatório sumir silenciosamente
|
administradores conseguem mesclar um PR mesmo com o teste de backend falhando, porque a opção "Do not allow bypassing the above settings" está desligada. Sugestão, ativar essa opção nas duas branches resolve Settings -> Branches |
| build: | ||
| name: Build do projeto back-end | ||
| needs: changes | ||
| runs-on: ubuntu-latest |
There was a problem hiding this comment.
se o job changes (que detecta o que mudou) falhar por qualquer instabilidade, o job build fica "skipped" em vez de "failed" e o GitHub trata um check obrigatório "skipped" como se tivesse passado. Remover o job changes e sempre rodar os testes direto (sem a condição if:)
|
o guia ainda ensina a instalar e rodar o projeto via Gradle (docs/docs-backend/DEVS_BACKEND_README.md), mas esse PR (e a estrutura real do repositório) confirma que isso não existe mais. Sugestão, atualizar para os comandos Maven atuais |
…matizados-no-pipeline-de-ci
Ajustei a configuração do maven-surefire-plugin no pom.xml para incluir o padrão **/*Tests.java, permitindo a execução do ApiApplicationTests (elevando a suíte para 250 testes). Contudo, por se tratar de um @SpringBootTest, ele tenta carregar o ApplicationContext completo, exigindo conexão ativa com o PostgreSQL (para inicialização do DataSource/Flyway) e com o MinIO (validado pelo ApplicationRunner), além do preenchimento das variáveis de ambiente (DB_URL, MINIO_URL, etc.). Como o runner do GitHub Actions roda em um ambiente efêmero sem esses serviços provisionados nem variáveis de ambiente configuradas, a subida do contexto falha (Failed to load ApplicationContext). Seria interessante verificar com a equipe de QA sobre o uso dos testes, acredito que a não inclusão do ApiApplicationTests.javados testes foi proposital. Mas vale a pena confirmar e se vier a ser adicionado, fazer alterações nesse sentido. |

O que mudou?
Os testes automatizados do backend, que já existiam no código mas nunca eram executados pelo CI, foram ativados no pipeline. Também foi identificado e removido um conjunto de workflows (orchestrator.yml, demo.yml, documentos-digitalizados.yml) que não tinham mais utilidade na estrutura atual do projeto.
Tarefas Relacionadas
Mudanças Realizadas
Evidências
Caso os testes falhem será avisado nos status e o gate obrigatório foi ativado, caso o status não for aprovado, não é possível fazer o merge: