From d23087de102395c71a522e7f13fd6155472d4d49 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:03:42 +0100 Subject: [PATCH 1/8] jacoco configured in pluginManagement and profile --- dsl/org.eclipse.emf.parsley.dsl.tests/pom.xml | 5 - .../pom.xml | 5 - releng/org.eclipse.emf.parsley.parent/pom.xml | 19 ++- .../org.eclipse.emf.parsley.cdo.tests/pom.xml | 5 - .../README | 3 - .../pom.xml | 130 +++++++++++++++++- .../pom.xml | 5 - .../pom.xml | 5 - .../pom.xml | 5 - .../pom.xml | 5 - tests/org.eclipse.emf.parsley.tests/pom.xml | 4 - 11 files changed, 143 insertions(+), 48 deletions(-) delete mode 100644 tests/org.eclipse.emf.parsley.tests.coverage/README diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/pom.xml b/dsl/org.eclipse.emf.parsley.dsl.tests/pom.xml index 375462a7c..3dad3076b 100644 --- a/dsl/org.eclipse.emf.parsley.dsl.tests/pom.xml +++ b/dsl/org.eclipse.emf.parsley.dsl.tests/pom.xml @@ -15,11 +15,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.xtend xtend-maven-plugin diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/pom.xml b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/pom.xml index f3e15bf79..b04eb04b3 100644 --- a/dsl/org.eclipse.emf.parsley.dsl.ui.tests/pom.xml +++ b/dsl/org.eclipse.emf.parsley.dsl.ui.tests/pom.xml @@ -47,11 +47,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.xtend xtend-maven-plugin diff --git a/releng/org.eclipse.emf.parsley.parent/pom.xml b/releng/org.eclipse.emf.parsley.parent/pom.xml index aa5d8683c..f8937c16a 100644 --- a/releng/org.eclipse.emf.parsley.parent/pom.xml +++ b/releng/org.eclipse.emf.parsley.parent/pom.xml @@ -94,6 +94,8 @@ + ../../tests/org.eclipse.emf.parsley.tests.coverage/target/site/jacoco-aggregate/jacoco.xml + /home/data/httpd/download.eclipse.org/emf-parsley @@ -205,7 +207,6 @@ true - ../../tests/org.eclipse.emf.parsley.tests.coverage ../../devtools/org.eclipse.emf.parsley.targetplatform ../../plugins/org.eclipse.emf.parsley.runtime.common @@ -288,6 +289,8 @@ ../../examples/org.eclipse.emf.parsley.examples.eclipse4.parsleypart ../../examples/org.eclipse.emf.parsley.examples.eclipse4.product.feature ../../tests/org.eclipse.emf.parsley.tests.swtbot.e4 + + ../../tests/org.eclipse.emf.parsley.tests.coverage @@ -665,6 +668,17 @@ jacoco-maven-plugin + + + + org.eclipse.xtend + xtend-maven-plugin + + true + + + + @@ -789,8 +803,6 @@ prepare-agent - - ${sonar.jacoco.reportPath} org.eclipse.emf.parsley.* @@ -806,7 +818,6 @@ **/Abstract*ProposalProvider.java **/*Test.java - true diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/pom.xml b/tests/org.eclipse.emf.parsley.cdo.tests/pom.xml index 251a60022..4f844e1a9 100644 --- a/tests/org.eclipse.emf.parsley.cdo.tests/pom.xml +++ b/tests/org.eclipse.emf.parsley.cdo.tests/pom.xml @@ -15,11 +15,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.tycho tycho-surefire-plugin diff --git a/tests/org.eclipse.emf.parsley.tests.coverage/README b/tests/org.eclipse.emf.parsley.tests.coverage/README deleted file mode 100644 index 833b08cc0..000000000 --- a/tests/org.eclipse.emf.parsley.tests.coverage/README +++ /dev/null @@ -1,3 +0,0 @@ -This project is used only as a container where Jacoco code coverage will be generated. - -We need a single jacoco.exec because Sonarqube provided by Eclipse is quite old and having a single jacoco.exec makes configuration easy. \ No newline at end of file diff --git a/tests/org.eclipse.emf.parsley.tests.coverage/pom.xml b/tests/org.eclipse.emf.parsley.tests.coverage/pom.xml index 556e9da52..0c9c793db 100644 --- a/tests/org.eclipse.emf.parsley.tests.coverage/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests.coverage/pom.xml @@ -1,6 +1,5 @@ - + 4.0.0 @@ -13,4 +12,131 @@ org.eclipse.emf.tests.coverage pom + + + + jacoco + + + + org.jacoco + jacoco-maven-plugin + + + verify + + report-aggregate + + + + + + + + + + + + ${project.groupId} + org.eclipse.emf.parsley.common + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.editors.common + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.generator.common + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.runtime.common + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.views.common + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.wizards + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.dsl + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.dsl.ui + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.dsl.additional.builder + ${project.version} + compile + + + ${project.groupId} + org.eclipse.emf.parsley.tests + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.cdo.tests + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.dsl.tests + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.dsl.ui.tests + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.tests.swtbot + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.tests.swtbot.cdo + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.tests.swtbot.examples + ${project.version} + test + + + ${project.groupId} + org.eclipse.emf.parsley.tests.swtbot.e4 + ${project.version} + test + + \ No newline at end of file diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot.cdo/pom.xml b/tests/org.eclipse.emf.parsley.tests.swtbot.cdo/pom.xml index 2eab5fe8f..c1f08cc6c 100644 --- a/tests/org.eclipse.emf.parsley.tests.swtbot.cdo/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests.swtbot.cdo/pom.xml @@ -19,11 +19,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.tycho tycho-surefire-plugin diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot.e4/pom.xml b/tests/org.eclipse.emf.parsley.tests.swtbot.e4/pom.xml index adfdfb069..3f80f0301 100644 --- a/tests/org.eclipse.emf.parsley.tests.swtbot.e4/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests.swtbot.e4/pom.xml @@ -19,11 +19,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.tycho tycho-surefire-plugin diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot.examples/pom.xml b/tests/org.eclipse.emf.parsley.tests.swtbot.examples/pom.xml index d539e59f3..7659f41c0 100644 --- a/tests/org.eclipse.emf.parsley.tests.swtbot.examples/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests.swtbot.examples/pom.xml @@ -19,11 +19,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.tycho tycho-surefire-plugin diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/pom.xml b/tests/org.eclipse.emf.parsley.tests.swtbot/pom.xml index ab4b64fca..ead272b1f 100644 --- a/tests/org.eclipse.emf.parsley.tests.swtbot/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests.swtbot/pom.xml @@ -52,11 +52,6 @@ - - org.jacoco - jacoco-maven-plugin - - org.eclipse.tycho tycho-surefire-plugin diff --git a/tests/org.eclipse.emf.parsley.tests/pom.xml b/tests/org.eclipse.emf.parsley.tests/pom.xml index b646b017f..f61d925c4 100644 --- a/tests/org.eclipse.emf.parsley.tests/pom.xml +++ b/tests/org.eclipse.emf.parsley.tests/pom.xml @@ -24,10 +24,6 @@ - - org.jacoco - jacoco-maven-plugin - org.eclipse.xtend xtend-maven-plugin From e8219cc29ffafa425785cbb05560e61047a3cb72 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:05:43 +0100 Subject: [PATCH 2/8] enabled jacoco profile --- .github/workflows/maven.yml | 7 +++++++ Jenkinsfile | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c3387fe0b..cf9e9d79b 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -39,6 +39,7 @@ jobs: run: > ./mvnw -f releng/org.eclipse.emf.parsley.parent/pom.xml -Prcp-build + -Pjacoco clean verify - name: Archive UI Tests Screenshots uses: actions/upload-artifact@v2 @@ -52,6 +53,12 @@ jobs: with: name: logs-${{ runner.os }} path: '**/target/work/data/.metadata/.log' + - name: Archive Coverage Report + uses: actions/upload-artifact@v2 + if: ${{ success() }} + with: + name: jacoco-coverage-${{ runner.os }} + path: '**/site/jacoco-aggregate' maven-build: runs-on: ubuntu-latest diff --git a/Jenkinsfile b/Jenkinsfile index 8aeac55be..e99606f7b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,7 @@ pipeline { wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) { sh """ metacity --sm-disable --replace 2> wm.err & - ./mvnw -f releng/org.eclipse.emf.parsley.parent/pom.xml clean verify -Prcp-build + ./mvnw -f releng/org.eclipse.emf.parsley.parent/pom.xml clean verify -Prcp-build,jacoco """ } } From b43ed176e3c2a53f3079e3d3ca722381568aa5ed Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:12:29 +0100 Subject: [PATCH 3/8] Jenkins: also archive jacoco report --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e99606f7b..6a8aedc30 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -34,7 +34,7 @@ pipeline { archiveArtifacts artifacts: '**/target/work/data/.metadata/.log, **/screenshots/, **/wm.err, **/hs_err_pid*.log' } success { - archiveArtifacts artifacts: 'target/repository/, **/target/work/data/.metadata/.log' + archiveArtifacts artifacts: 'target/repository/, **/target/work/data/.metadata/.log, **/site/jacoco-aggregate/' } } } From 17437f9265be437a092bee76e9e363bd708047d6 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:15:42 +0100 Subject: [PATCH 4/8] Jenkins: publishHTML JaCoCo report --- Jenkinsfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 6a8aedc30..344b3224b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -35,6 +35,14 @@ pipeline { } success { archiveArtifacts artifacts: 'target/repository/, **/target/work/data/.metadata/.log, **/site/jacoco-aggregate/' + publishHTML(target: [ + allowMissing: false, + alwaysLinkToLastBuild: true, + keepAll: true, + reportDir: 'tests/org.eclipse.emf.parsley.tests.coverage/target/site/jacoco-aggregate', + reportFiles: 'index.html', + reportName: 'Jacoco HTML Report' + ]) } } } From b8e16deaa6412df121dbee23625ffbd856ad2bb3 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:24:39 +0100 Subject: [PATCH 5/8] configuration of jacoco outside execution --- releng/org.eclipse.emf.parsley.parent/pom.xml | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/releng/org.eclipse.emf.parsley.parent/pom.xml b/releng/org.eclipse.emf.parsley.parent/pom.xml index f8937c16a..ba5e774e8 100644 --- a/releng/org.eclipse.emf.parsley.parent/pom.xml +++ b/releng/org.eclipse.emf.parsley.parent/pom.xml @@ -802,25 +802,28 @@ prepare-agent - - - org.eclipse.emf.parsley.* - - - **/src-gen/**/*.java - **.antlr** - **.parseTree** - **Abstract*RuntimeModule.java - **/*SetupGenerated*.java - **/Abstract*Validator.java - **/*GrammarAccess.java - **/Abstract*UiModule.java - **/Abstract*ProposalProvider.java - **/*Test.java - - + + + + **/antlr/**/*.class + + **/serializer/*.class + + **/*Abstract*RuntimeModule.class + **/*StandaloneSetup*.class + **/*Abstract*Validator.class + **/*Abstract*ScopeProvider.class + **/*GrammarAccess*.class + **/*Abstract*UiModule.class + **/**ExecutableExtensionFactory.class + **/*Abstract*ProposalProvider.class + **/internal/*.class + **/*ProjectTemplateProvider.class + **/*ProjectTemplate.class + + From 56ab79a6b9410fa8232a6db55a0029fea0ad0e04 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Tue, 6 Dec 2022 19:30:34 +0100 Subject: [PATCH 6/8] Revert "Jenkins: publishHTML JaCoCo report" This reverts commit 17437f9265be437a092bee76e9e363bd708047d6. --- Jenkinsfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 344b3224b..6a8aedc30 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -35,14 +35,6 @@ pipeline { } success { archiveArtifacts artifacts: 'target/repository/, **/target/work/data/.metadata/.log, **/site/jacoco-aggregate/' - publishHTML(target: [ - allowMissing: false, - alwaysLinkToLastBuild: true, - keepAll: true, - reportDir: 'tests/org.eclipse.emf.parsley.tests.coverage/target/site/jacoco-aggregate', - reportFiles: 'index.html', - reportName: 'Jacoco HTML Report' - ]) } } } From 5fbc3d593de9f5e0412ef9f1b859337ad5f1c5f8 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Wed, 7 Dec 2022 11:11:50 +0100 Subject: [PATCH 7/8] exclude dsl/model/**/*.class --- releng/org.eclipse.emf.parsley.parent/pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releng/org.eclipse.emf.parsley.parent/pom.xml b/releng/org.eclipse.emf.parsley.parent/pom.xml index ba5e774e8..fba11ea4e 100644 --- a/releng/org.eclipse.emf.parsley.parent/pom.xml +++ b/releng/org.eclipse.emf.parsley.parent/pom.xml @@ -806,6 +806,8 @@ + + **/dsl/model/**/*.class **/antlr/**/*.class From 4fd79aeeccc6fdb6da6f3c99483d6f9ab1caf2fb Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Wed, 7 Dec 2022 11:38:42 +0100 Subject: [PATCH 8/8] jacoco step in Jenkinsfile --- Jenkinsfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 6a8aedc30..61e81594c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,6 +24,22 @@ pipeline { ./mvnw -f releng/org.eclipse.emf.parsley.parent/pom.xml clean verify -Prcp-build,jacoco """ } + jacoco ( + classPattern: 'plugins/org.eclipse.emf.parsley.*/**/classes,dsl/org.eclipse.emf.parsley.dsl/**/classes,dsl/org.eclipse.emf.parsley.dsl.ui/**/classes,dsl/org.eclipse.emf.parsley.dsl.additional.builder/**/classes', + exclusionPattern: '**/*StandaloneSetup*.class,**/*ExecutableExtensionFactory*.class,**/*UiModule*.class,**/*RuntimeModule*.class,**/*Activator*.class,**/*Nature*.class,**/EmfParsleyDslProjectCreator.class,**/EmfParsleyDslNewProjectWizard.class,**/Abstract*ProposalProvider*,**/*Internal*,**/*Sequencer*,**/*GrammarAccess*,**/antlr/*.*,**/internal/*.*,**/org/eclipse/emf/parsley/dsl/model/impl/*.*,**/org/eclipse/emf/parsley/dsl/model/util/*.*,**/org/eclipse/emf/parsley/rap/**/*.*,**/org/eclipse/emf/parsley/runtime/**/*.*,**/org/eclipse/emf/parsley/tests/**/*.*,**/org/eclipse/emf/parsley/junit4/**/*.*,**/org/eclipse/emf/parsley/inject/parameters/*.*', + maximumBranchCoverage: '100', + maximumClassCoverage: '100', + maximumComplexityCoverage: '100', + maximumLineCoverage: '100', + maximumMethodCoverage: '100', + minimumBranchCoverage: '90', + minimumClassCoverage: '90', + minimumComplexityCoverage: '90', + minimumLineCoverage: '90', + minimumMethodCoverage: '90', + sourceInclusionPattern: '**/*.java', + sourcePattern: 'plugins/org.eclipse.emf.parsley.*/src,plugins/org.eclipse.emf.parsley.*/xtend-gen,dsl/org.eclipse.emf.parsley.dsl/src,dsl/org.eclipse.emf.parsley.dsl/xtend-gen,dsl/org.eclipse.emf.parsley.dsl.ui/src,dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen,dsl/org.eclipse.emf.parsley.dsl.additional.builder/src,dsl/org.eclipse.emf.parsley.dsl.additional.builder/xtend-gen' + ) } } }