2026-04-07 06:39:20 +01:00

1.3 KiB

LSN-0039: Jenkins + JaCoCo Integration with Multi-Module Gradle

  • Problem: O Jenkinsfile estava desatualizado, tentando rodar uma task de cobertura inexistente (testCodeCoverageReport) em um subprojeto específico, ignorando a cobertura global e causando falhas no pipeline.
  • Decision: Alinhar o Jenkinsfile com a task de agregação customizada no root project (jacocoTestReport), removendo a dependência de subprojetos específicos para métricas globais.
  • Implementation:
    • Atualizado o comando de execução no Jenkins: ./gradlew clean test jacocoTestReport.
    • Ajustado o recordCoverage para ler o XML consolidado em build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml.
    • Ajustado o publishHTML para exibir o relatório consolidado em build/reports/jacoco/jacocoTestReport/html.
  • Example:
    • Antes: SRS_APP/build/reports/... (específico por app).
    • Depois: build/reports/... (global do projeto).
  • Pitfalls:
    • Ao usar relatórios consolidados no root, deve-se garantir que o Gradle rode a task de agregação após os testes de todos os subprojetos.
    • O Jenkins precisa de acesso ao workspace root para encontrar esses arquivos; caminhos relativos no Jenkinsfile geralmente partem do root do checkout.
  • References:
    • DSC-0024, DEC-0025, PLN-0048.