1.3 KiB
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
Jenkinsfilecom 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
recordCoveragepara ler o XML consolidado embuild/reports/jacoco/jacocoTestReport/jacocoTestReport.xml. - Ajustado o
publishHTMLpara exibir o relatório consolidado embuild/reports/jacoco/jacocoTestReport/html.
- Atualizado o comando de execução no Jenkins:
- Example:
- Antes:
SRS_APP/build/reports/...(específico por app). - Depois:
build/reports/...(global do projeto).
- Antes:
- 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
Jenkinsfilegeralmente partem do root do checkout.
- References:
DSC-0024,DEC-0025,PLN-0048.