From 87e3e17336468c88e3778052c9212f5e71fd0710 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 3 May 2024 17:12:49 +0200 Subject: [PATCH 1/5] Separate jobs for modules --- .github/workflows/test.yml | 45 +++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 97c9aa7..1b62aa8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,46 @@ on: env: TEST_CASSANDRA_PWD: ${RANDOM}${RANDOM}${RANDOM} jobs: - test-java: + + + test-transform: + runs-on: ubuntu-latest + #if: ${{ false }} # disable for now + #avoids duplicate execution of pr from local repo, but allows pr from forked repos and dependabot + if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && (github.event.pull_request.head.repo.fork || startsWith(github.head_ref, 'dependabot/'))) + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + cache: 'maven' + - name: Test transform module and aggregate surefire report + run: mvn test -Daggregate=true -Dtest=* -pl modevo-transform -am -Dmaven.test.failure.ignore=true -U --no-transfer-progress + - name: Additional aggregated junit report + uses: javiertuya/junit-report-action@v1 + with: + surefire-files: "**/target/surefire-reports/TEST-*.xml" + report-dir: target/site + + - name: Generate report checks + if: always() + uses: mikepenz/action-junit-report@v4.2.1 + with: + check_name: "test-result" + report_paths: "**/surefire-reports/TEST-*.xml" + fail_on_failure: 'true' + + - if: always() + name: Publish test report files + uses: actions/upload-artifact@v4 + with: + name: "test-report-files" + path: | + target/site + **/target/site/jacoco/jacoco.xml + **/target/surefire-reports + test-script: runs-on: ubuntu-latest #if: ${{ false }} # disable for now #avoids duplicate execution of pr from local repo, but allows pr from forked repos and dependabot @@ -33,7 +72,7 @@ jobs: chmod u+x setup/wait-container-ready.sh && ./setup/wait-container-ready.sh test-cassandra 1 "Created default superuser role" docker exec test-cassandra cqlsh localhost 9042 -u cassandra -p cassandra -f creationSchema.cql - name: Test and aggregate surefire report - run: mvn test -Daggregate=true -Dmaven.test.failure.ignore=true -U --no-transfer-progress + run: mvn test -Daggregate=true -Dtest=* -pl modevo-script -am -Dmaven.test.failure.ignore=true -U --no-transfer-progress - name: Additional aggregated junit report uses: javiertuya/junit-report-action@v1 @@ -60,7 +99,7 @@ jobs: **/target/surefire-reports sonarqube: - needs: [test-java] + needs: [test-transform, test-script] #if: ${{ false }} # disable for now #This job fails when comming from a dependabot PR (can't read the sonarqube token for security reasons). #Links to discussions and workaround at: https://github.com/giis-uniovi/samples-giis-template/issues/4 From f86b8dfb7cbb18d3f0b1e21d8ec7d659566bc740 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 3 May 2024 17:15:59 +0200 Subject: [PATCH 2/5] Different names for test report files --- .github/workflows/test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b62aa8..33237a0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,7 +46,7 @@ jobs: name: Publish test report files uses: actions/upload-artifact@v4 with: - name: "test-report-files" + name: "test-report-files-transform" path: | target/site **/target/site/jacoco/jacoco.xml @@ -92,7 +92,7 @@ jobs: name: Publish test report files uses: actions/upload-artifact@v4 with: - name: "test-report-files" + name: "test-report-files-script" path: | target/site **/target/site/jacoco/jacoco.xml @@ -110,7 +110,8 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} sonar-token: ${{ secrets.SONAR_TOKEN }} - restore-artifact-name1: "test-report-files" + restore-artifact-name1: "test-report-files-transform" + restore-artifact-name2: "test-report-files-script" publish-java-snapshot: if: ${{ false }} # disable for now From f2ad00d0246462ba59729d1158d240309c6e7589 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 3 May 2024 17:41:47 +0200 Subject: [PATCH 3/5] Only executes tests of module script in job test-script --- .github/workflows/test.yml | 2 +- .../modevo/{TestSchemaChanges.java => TestTransform.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename modevo-transform/src/test/java/test4giis/modevo/{TestSchemaChanges.java => TestTransform.java} (99%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 33237a0..c80e8d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -72,7 +72,7 @@ jobs: chmod u+x setup/wait-container-ready.sh && ./setup/wait-container-ready.sh test-cassandra 1 "Created default superuser role" docker exec test-cassandra cqlsh localhost 9042 -u cassandra -p cassandra -f creationSchema.cql - name: Test and aggregate surefire report - run: mvn test -Daggregate=true -Dtest=* -pl modevo-script -am -Dmaven.test.failure.ignore=true -U --no-transfer-progress + run: mvn test -Daggregate=true -Dtest=!TestTransform* -pl modevo-script -am -Dmaven.test.failure.ignore=true -U --no-transfer-progress - name: Additional aggregated junit report uses: javiertuya/junit-report-action@v1 diff --git a/modevo-transform/src/test/java/test4giis/modevo/TestSchemaChanges.java b/modevo-transform/src/test/java/test4giis/modevo/TestTransform.java similarity index 99% rename from modevo-transform/src/test/java/test4giis/modevo/TestSchemaChanges.java rename to modevo-transform/src/test/java/test4giis/modevo/TestTransform.java index 6d68e1d..859dbe5 100644 --- a/modevo-transform/src/test/java/test4giis/modevo/TestSchemaChanges.java +++ b/modevo-transform/src/test/java/test4giis/modevo/TestTransform.java @@ -10,7 +10,7 @@ import org.junit.Rule; import org.junit.rules.TestName; -public class TestSchemaChanges { +public class TestTransform { private static final String inputModelsFolderTemp = "target/input-models/"; private static final String schema = "schema.xmi"; From 3b36e65c91261c49ba6b1bac9858e0cd92247526 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 3 May 2024 17:47:56 +0200 Subject: [PATCH 4/5] Report checks with different names --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c80e8d3..612dfba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,7 +38,7 @@ jobs: if: always() uses: mikepenz/action-junit-report@v4.2.1 with: - check_name: "test-result" + check_name: "test-result-transform" report_paths: "**/surefire-reports/TEST-*.xml" fail_on_failure: 'true' @@ -84,7 +84,7 @@ jobs: if: always() uses: mikepenz/action-junit-report@v4.2.1 with: - check_name: "test-result" + check_name: "test-result-script" report_paths: "**/surefire-reports/TEST-*.xml" fail_on_failure: 'true' From 51fb78323e9f1ea6d534ad8e1cfb59c7f8487438 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 3 May 2024 19:21:25 +0200 Subject: [PATCH 5/5] Generate aggregate test report --- .github/workflows/test.yml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 612dfba..46475ed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -100,11 +100,13 @@ jobs: sonarqube: needs: [test-transform, test-script] + #if: ${{ false }} # disable for now #This job fails when comming from a dependabot PR (can't read the sonarqube token for security reasons). #Links to discussions and workaround at: https://github.com/giis-uniovi/samples-giis-template/issues/4 if: ${{ github.actor != 'dependabot[bot]' }} runs-on: ubuntu-latest + steps: - uses: javiertuya/sonarqube-action@v1.3.1 with: @@ -112,7 +114,32 @@ jobs: sonar-token: ${{ secrets.SONAR_TOKEN }} restore-artifact-name1: "test-report-files-transform" restore-artifact-name2: "test-report-files-script" - + - name: Aggregated junit html report + if: always() + uses: javiertuya/junit-report-action@v1.2.0 + with: + surefire-files: "**/target/surefire-reports/TEST-*.xml" + report-dir: target-ALL/site + report-title: "Test Report: ALL - Branch: ${{ github.ref_name }} - Run #${{ github.run_number }}" + - name: Index file to html reports + run: | + echo "Latest Test Reports" > target-ALL/site/index.html + echo "

Latest Test Reports - Branch: ${{ github.ref_name }} - Run #${{ github.run_number }}

" >> target-ALL/site/index.html + echo "

Single page reports

" >> target-ALL/site/index.html + echo "

Multiple page reports with frames

" >> target-ALL/site/index.html + echo "" >> target-ALL/site/index.html + - if: always() + name: Publish test report files + uses: actions/upload-artifact@v4 + with: + name: "test-report-ALL" + path: | + target-ALL/site + **/target/surefire-reports + **/target/*.html + **/target/*.log + **/reports/*.html + **/reports/*.log publish-java-snapshot: if: ${{ false }} # disable for now #avoid publishing PRs and dependabot branches