Skip to content

[CI] Ativar execução dos testes automatizados no pipeline de CI - #945

Open
WolgrandAP wants to merge 16 commits into
devfrom
29-APAE-INFRA-ativar-execucao-dos-testes-automatizados-no-pipeline-de-ci
Open

WolgrandAP wants to merge 16 commits into
devfrom
29-APAE-INFRA-ativar-execucao-dos-testes-automatizados-no-pipeline-de-ci

Conversation

@WolgrandAP

@WolgrandAP WolgrandAP commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

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

  • Issue: #29
  • Outras dependências:

Mudanças Realizadas

  • Foi tirado o trecho do pipeline "-Dmaven.test.skip=true" para que os testes pudessem ser rodados.
  • Criada uma regra de gate obrigatório em Settings → Branches: o job Build do projeto back-end agora é um status check obrigatório para dev/main, bloqueando o merge de qualquer PR se os testes falharem.
  • Removidos .github/workflows/orchestrator.yml, .github/workflows/demo.yml e .github/workflows/documentos-digitalizados.yml: Esses workflows dependiam de uma estrutura de projeto Gradle multi-módulo em api/demo/ e api/documentos-digitalizados/, que não existe mais no repositório atual (hoje o backend é um projeto Maven único em apps/api/).

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:

Captura de tela de 2026-09-06 19-04-54 Captura de tela de 2026-09-06 19-15-25

@WolgrandAP WolgrandAP self-assigned this Sep 6, 2026
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 86697ab4-3d15-46a1-bfd6-f108a78861af

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@WolgrandAP WolgrandAP changed the title 29 apae infra ativar execucao dos testes automatizados no pipeline de ci [CI] Ativar execução dos testes automatizados no pipeline de CI Sep 6, 2026
@WolgrandAP WolgrandAP added bug Para correções de erros. DevOps labels Sep 6, 2026
@henriquetomazzz
henriquetomazzz self-requested a review September 9, 2026 12:06
@henriquetomazzz

Copy link
Copy Markdown
Collaborator

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.

Comment on lines -9 to +51
- "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

@henriquetomazzz henriquetomazzz Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@henriquetomazzz

Copy link
Copy Markdown
Collaborator

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

Comment on lines 24 to 27
build:
name: Build do projeto back-end
needs: changes
runs-on: ubuntu-latest

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:)

@henriquetomazzz

Copy link
Copy Markdown
Collaborator

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

@WolgrandAP

Copy link
Copy Markdown
Collaborator Author

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.

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).
Captura de tela de 2026-09-15 22-46-10

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Para correções de erros. DevOps

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants