From 43e8fa67cc144bbab849b8aa65cac9d6f8524994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 10:36:26 +0200 Subject: [PATCH 01/12] Refactor build.yml for permissions and coverage action Updated GitHub Actions workflow to include permissions and replace the code coverage reporting method with a new action. --- .github/workflows/build.yml | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 787223bd..41a451fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,6 +9,10 @@ on: pull_request: branches: [ master ] +permissions: + contents: read + id-token: write + jobs: build: @@ -91,21 +95,13 @@ jobs: - name: Code Coverage Report if: ${{ github.actor != 'dependabot[bot]' }} - env: - GIT_BRANCH: ${GITHUB_REF/refs\/heads\//} - JACOCO_SOURCE_PATH: credit-score-service/src/main/java special-membership-service/src/main/java welcome-member-email-service/src/main/java - CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} - run: | - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter format-coverage -t jacoco credit-score-service/target/site/jacoco/jacoco.xml -o coverage/credit-score-service-unit.json - ./cc-test-reporter format-coverage -t jacoco credit-score-service/target/site/jacoco-it/jacoco.xml -o coverage/credit-score-service-it.json - ./cc-test-reporter format-coverage -t jacoco special-membership-service/target/site/jacoco/jacoco.xml -o coverage/special-membership-service-unit.json - ./cc-test-reporter format-coverage -t jacoco special-membership-service/target/site/jacoco-it/jacoco.xml -o coverage/special-membership-service-it.json - ./cc-test-reporter format-coverage -t jacoco welcome-member-email-service/target/site/jacoco/jacoco.xml -o coverage/welcome-member-email-service-unit.json - ./cc-test-reporter format-coverage -t jacoco welcome-member-email-service/target/site/jacoco-it/jacoco.xml -o coverage/welcome-member-email-service-it.json - ./cc-test-reporter sum-coverage coverage/*.json -p 6 - ./cc-test-reporter upload-coverage + uses: qltysh/qlty-action/coverage@v2 + with: + oidc: true + files: | + target/site/jacoco/jacoco.xml + target/site/jacoco-it/jacoco.xml + add-prefix: credit-score-service/src/main/java/,special-membership-service/src/main/java/,welcome-member-email-service/src/main/java/ - name: Stop dependencies with docker-compose run: docker compose -f pact-tools/pact-broker/docker-compose.yml down From 1accf405518718e5e2f103b50af481690bbb1aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 10:37:12 +0200 Subject: [PATCH 02/12] Replace Code Climate badges with Qlty.sh badges Updated test coverage and maintainability badges in README. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a1e88098..750b5bb6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Build](https://github.com/andreschaffer/microservices-testing-examples/actions/workflows/build.yml/badge.svg)](https://github.com/andreschaffer/microservices-testing-examples/actions/workflows/build.yml) -[![Test Coverage](https://api.codeclimate.com/v1/badges/77358dd72d38afa63fce/test_coverage)](https://codeclimate.com/github/andreschaffer/microservices-testing-examples/test_coverage) -[![Maintainability](https://api.codeclimate.com/v1/badges/77358dd72d38afa63fce/maintainability)](https://codeclimate.com/github/andreschaffer/microservices-testing-examples/maintainability) +[![Code Coverage](https://qlty.sh/gh/andreschaffer/projects/microservices-testing-examples/coverage.svg)](https://qlty.sh/gh/andreschaffer/projects/microservices-testing-examples) +[![Maintainability](https://qlty.sh/gh/andreschaffer/projects/microservices-testing-examples/maintainability.svg)](https://qlty.sh/gh/andreschaffer/projects/microservices-testing-examples) [![Dependabot](https://img.shields.io/badge/Dependabot-enabled-blue?logo=dependabot)](https://docs.github.com/en/github/administering-a-repository/keeping-your-dependencies-updated-automatically) # Microservices Testing Examples From 80a41ffff1cdebc602b8e9841d5ed5c1bf651fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 10:58:05 +0200 Subject: [PATCH 03/12] Merge Jacoco coverage reports into a single file Merged multiple Jacoco coverage report files into a single report for improved analysis. --- .github/workflows/build.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 41a451fc..9b9cb4e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,15 +93,30 @@ jobs: # tag pacts as production docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --pacticipant credit-score-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass + - name: Merge Code Coverage Report Files + if: ${{ github.actor != 'dependabot[bot]' }} + env: + JACOCO_SOURCE_PATH: credit-score-service/src/main/java special-membership-service/src/main/java welcome-member-email-service/src/main/java + run: | + mkdir -p coverage + + curl -L https://www.jacoco.org/jacoco/trunk/org.jacoco.cli-0.8.15.jar -o jacococli.jar + + java -jar jacococli.jar merge \ + credit-score-service/target/site/jacoco/jacoco.xml \ + credit-score-service/target/site/jacoco-it/jacoco.xml \ + special-membership-service/target/site/jacoco/jacoco.xml \ + special-membership-service/target/site/jacoco-it/jacoco.xml \ + welcome-member-email-service/target/site/jacoco/jacoco.xml \ + welcome-member-email-service/target/site/jacoco-it/jacoco.xml \ + --destfile coverage/merged-jacoco.xml + - name: Code Coverage Report if: ${{ github.actor != 'dependabot[bot]' }} uses: qltysh/qlty-action/coverage@v2 with: oidc: true - files: | - target/site/jacoco/jacoco.xml - target/site/jacoco-it/jacoco.xml - add-prefix: credit-score-service/src/main/java/,special-membership-service/src/main/java/,welcome-member-email-service/src/main/java/ + files: coverage/merged-jacoco.xml - name: Stop dependencies with docker-compose run: docker compose -f pact-tools/pact-broker/docker-compose.yml down From cc4c845011c8c922cf544f1fd648ac41313c845d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:03:21 +0200 Subject: [PATCH 04/12] Update JaCoCo CLI jar download URL in build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9b9cb4e6..90e1d56e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: run: | mkdir -p coverage - curl -L https://www.jacoco.org/jacoco/trunk/org.jacoco.cli-0.8.15.jar -o jacococli.jar + curl -L -o jacococli.jar https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.15/org.jacoco.cli-0.8.15-nodeps.jar java -jar jacococli.jar merge \ credit-score-service/target/site/jacoco/jacoco.xml \ From 992b128d356a4cff82e9251e2c0d96cee97ea4bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:09:18 +0200 Subject: [PATCH 05/12] Modify JaCoCo version handling in build workflow Updated JaCoCo version retrieval and download in build.yml --- .github/workflows/build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90e1d56e..96d83ce3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -98,10 +98,13 @@ jobs: env: JACOCO_SOURCE_PATH: credit-score-service/src/main/java special-membership-service/src/main/java welcome-member-email-service/src/main/java run: | - mkdir -p coverage + JACOCO_VERSION=$(xmllint --xpath "string(//plugin[artifactId='jacoco-maven-plugin']/version)" pom.xml) + echo "JaCoCo version from pom.xml: $JACOCO_VERSION" - curl -L -o jacococli.jar https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.15/org.jacoco.cli-0.8.15-nodeps.jar + curl -L -o jacococli.jar "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/$JACOCO_VERSION/org.jacoco.cli-$JACOCO_VERSION-nodeps.jar" + mkdir -p coverage + java -jar jacococli.jar merge \ credit-score-service/target/site/jacoco/jacoco.xml \ credit-score-service/target/site/jacoco-it/jacoco.xml \ From ca0839882138c109ec34cba45bc8c6122dee6a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:17:03 +0200 Subject: [PATCH 06/12] Refactor JaCoCo version retrieval in build.yml Updated the method to retrieve JaCoCo version from pom.xml using grep and sed. --- .github/workflows/build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 96d83ce3..085a0d61 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,6 +42,9 @@ jobs: - name: Build welcome-member-email-service run: | + JACOCO_VERSION=$(grep -A 1 "jacoco-maven-plugin" pom.xml | grep "" | sed -E "s/.*(.*)<\/version>.*/\1/") + echo "JaCoCo version from pom.xml: $JACOCO_VERSION" + # build mvn clean verify -pl welcome-member-email-service -Pcode-coverage -Pstatic-code-analysis # verify pacts @@ -98,7 +101,7 @@ jobs: env: JACOCO_SOURCE_PATH: credit-score-service/src/main/java special-membership-service/src/main/java welcome-member-email-service/src/main/java run: | - JACOCO_VERSION=$(xmllint --xpath "string(//plugin[artifactId='jacoco-maven-plugin']/version)" pom.xml) + JACOCO_VERSION=$(grep -A 1 "jacoco-maven-plugin" pom.xml | grep "" | sed -E "s/.*(.*)<\/version>.*/\1/") echo "JaCoCo version from pom.xml: $JACOCO_VERSION" curl -L -o jacococli.jar "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/$JACOCO_VERSION/org.jacoco.cli-$JACOCO_VERSION-nodeps.jar" From 0ff8fb37c53d968715c4d96c178508080b79ae9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:19:16 +0200 Subject: [PATCH 07/12] Refactor JaCoCo version handling in build workflow Removed JaCoCo version extraction from build step and merged code coverage report files. --- .github/workflows/build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 085a0d61..bab0be93 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,9 +42,6 @@ jobs: - name: Build welcome-member-email-service run: | - JACOCO_VERSION=$(grep -A 1 "jacoco-maven-plugin" pom.xml | grep "" | sed -E "s/.*(.*)<\/version>.*/\1/") - echo "JaCoCo version from pom.xml: $JACOCO_VERSION" - # build mvn clean verify -pl welcome-member-email-service -Pcode-coverage -Pstatic-code-analysis # verify pacts @@ -98,8 +95,6 @@ jobs: - name: Merge Code Coverage Report Files if: ${{ github.actor != 'dependabot[bot]' }} - env: - JACOCO_SOURCE_PATH: credit-score-service/src/main/java special-membership-service/src/main/java welcome-member-email-service/src/main/java run: | JACOCO_VERSION=$(grep -A 1 "jacoco-maven-plugin" pom.xml | grep "" | sed -E "s/.*(.*)<\/version>.*/\1/") echo "JaCoCo version from pom.xml: $JACOCO_VERSION" From a6f3a43d07329e3e10b5b00ee3577961465a2fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:28:18 +0200 Subject: [PATCH 08/12] Refactor JaCoCo coverage commands in build.yml Updated JaCoCo merge and report commands to use .exec files instead of .xml files. --- .github/workflows/build.yml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bab0be93..30894a99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -102,15 +102,24 @@ jobs: curl -L -o jacococli.jar "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/$JACOCO_VERSION/org.jacoco.cli-$JACOCO_VERSION-nodeps.jar" mkdir -p coverage - + java -jar jacococli.jar merge \ - credit-score-service/target/site/jacoco/jacoco.xml \ - credit-score-service/target/site/jacoco-it/jacoco.xml \ - special-membership-service/target/site/jacoco/jacoco.xml \ - special-membership-service/target/site/jacoco-it/jacoco.xml \ - welcome-member-email-service/target/site/jacoco/jacoco.xml \ - welcome-member-email-service/target/site/jacoco-it/jacoco.xml \ - --destfile coverage/merged-jacoco.xml + credit-score-service/target/jacoco.exec \ + credit-score-service/target/jacoco-it.exec \ + special-membership-service/target/jacoco.exec \ + special-membership-service/target/jacoco-it.exec \ + welcome-member-email-service/target/jacoco.exec \ + welcome-member-email-service/target/jacoco-it.exec \ + --destfile coverage/merged.exec + + java -jar jacococli.jar report coverage/merged.exec \ + --classfiles credit-score-service/target/classes \ + --classfiles special-membership-service/target/classes \ + --classfiles welcome-member-email-service/target/classes \ + --sourcefiles credit-score-service/src/main/java \ + --sourcefiles special-membership-service/src/main/java \ + --sourcefiles welcome-member-email-service/src/main/java \ + --xml coverage/merged-jacoco.xml - name: Code Coverage Report if: ${{ github.actor != 'dependabot[bot]' }} From 78539ffa5d0708df021066fbed3a91b663c90998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:39:43 +0200 Subject: [PATCH 09/12] Add prefix paths for coverage files Added prefix paths for coverage files in build workflow. --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 30894a99..0e52fb59 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -127,6 +127,7 @@ jobs: with: oidc: true files: coverage/merged-jacoco.xml + add-prefix: credit-score-service/src/main/java/,special-membership-service/src/main/java/,welcome-member-email-service/src/main/java/ - name: Stop dependencies with docker-compose run: docker compose -f pact-tools/pact-broker/docker-compose.yml down From a4d6fb382060f47b5c7c1d65eb4464a2ca79eb78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:43:23 +0200 Subject: [PATCH 10/12] Refactor code coverage report file handling Updated code coverage report step to use individual JaCoCo report files instead of merged report. --- .github/workflows/build.yml | 36 +++++++----------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e52fb59..c1eda699 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,40 +93,18 @@ jobs: # tag pacts as production docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --pacticipant credit-score-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass - - name: Merge Code Coverage Report Files - if: ${{ github.actor != 'dependabot[bot]' }} - run: | - JACOCO_VERSION=$(grep -A 1 "jacoco-maven-plugin" pom.xml | grep "" | sed -E "s/.*(.*)<\/version>.*/\1/") - echo "JaCoCo version from pom.xml: $JACOCO_VERSION" - - curl -L -o jacococli.jar "https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/$JACOCO_VERSION/org.jacoco.cli-$JACOCO_VERSION-nodeps.jar" - - mkdir -p coverage - - java -jar jacococli.jar merge \ - credit-score-service/target/jacoco.exec \ - credit-score-service/target/jacoco-it.exec \ - special-membership-service/target/jacoco.exec \ - special-membership-service/target/jacoco-it.exec \ - welcome-member-email-service/target/jacoco.exec \ - welcome-member-email-service/target/jacoco-it.exec \ - --destfile coverage/merged.exec - - java -jar jacococli.jar report coverage/merged.exec \ - --classfiles credit-score-service/target/classes \ - --classfiles special-membership-service/target/classes \ - --classfiles welcome-member-email-service/target/classes \ - --sourcefiles credit-score-service/src/main/java \ - --sourcefiles special-membership-service/src/main/java \ - --sourcefiles welcome-member-email-service/src/main/java \ - --xml coverage/merged-jacoco.xml - - name: Code Coverage Report if: ${{ github.actor != 'dependabot[bot]' }} uses: qltysh/qlty-action/coverage@v2 with: oidc: true - files: coverage/merged-jacoco.xml + files: | + credit-score-service/target/site/jacoco/jacoco.xml + credit-score-service/target/site/jacoco-it/jacoco.xml + special-membership-service/target/site/jacoco/jacoco.xml + special-membership-service/target/site/jacoco-it/jacoco.xml + welcome-member-email-service/target/site/jacoco/jacoco.xml + welcome-member-email-service/target/site/jacoco-it/jacoco.xml add-prefix: credit-score-service/src/main/java/,special-membership-service/src/main/java/,welcome-member-email-service/src/main/java/ - name: Stop dependencies with docker-compose From c6ca552c442d3dd3803ff4af952baaab230b09d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:48:15 +0200 Subject: [PATCH 11/12] Refactor add-prefix for better readability --- .github/workflows/build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1eda699..351670cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,7 +105,10 @@ jobs: special-membership-service/target/site/jacoco-it/jacoco.xml welcome-member-email-service/target/site/jacoco/jacoco.xml welcome-member-email-service/target/site/jacoco-it/jacoco.xml - add-prefix: credit-score-service/src/main/java/,special-membership-service/src/main/java/,welcome-member-email-service/src/main/java/ + add-prefix: | + credit-score-service/src/main/java/ + special-membership-service/src/main/java/ + welcome-member-email-service/src/main/java/ - name: Stop dependencies with docker-compose run: docker compose -f pact-tools/pact-broker/docker-compose.yml down From 6d056a32d2689261c38e4ec27ea52893f9a40b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Schaffer?= Date: Sat, 25 Oct 2025 11:56:25 +0200 Subject: [PATCH 12/12] Update build.yml --- .github/workflows/build.yml | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 351670cf..311c253e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,22 +93,38 @@ jobs: # tag pacts as production docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --pacticipant credit-score-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass - - name: Code Coverage Report + - name: Code Coverage Report welcome-member-email-service if: ${{ github.actor != 'dependabot[bot]' }} uses: qltysh/qlty-action/coverage@v2 with: oidc: true files: | - credit-score-service/target/site/jacoco/jacoco.xml - credit-score-service/target/site/jacoco-it/jacoco.xml - special-membership-service/target/site/jacoco/jacoco.xml - special-membership-service/target/site/jacoco-it/jacoco.xml welcome-member-email-service/target/site/jacoco/jacoco.xml welcome-member-email-service/target/site/jacoco-it/jacoco.xml - add-prefix: | - credit-score-service/src/main/java/ - special-membership-service/src/main/java/ - welcome-member-email-service/src/main/java/ + add-prefix: welcome-member-email-service/src/main/java/ + tag: welcome-member-email-service + + - name: Code Coverage Report special-membership-service + if: ${{ github.actor != 'dependabot[bot]' }} + uses: qltysh/qlty-action/coverage@v2 + with: + oidc: true + files: | + special-membership-service/target/site/jacoco/jacoco.xml + special-membership-service/target/site/jacoco-it/jacoco.xml + add-prefix: special-membership-service/src/main/java/ + tag: special-membership-service + + - name: Code Coverage Report credit-score-service + if: ${{ github.actor != 'dependabot[bot]' }} + uses: qltysh/qlty-action/coverage@v2 + with: + oidc: true + files: | + credit-score-service/target/site/jacoco/jacoco.xml + credit-score-service/target/site/jacoco-it/jacoco.xml + add-prefix: credit-score-service/src/main/java/ + tag: credit-score-service - name: Stop dependencies with docker-compose run: docker compose -f pact-tools/pact-broker/docker-compose.yml down