Bump mvn-test-plugins.version from 3.3.1 to 3.4.0 (#522) #973
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a Java project with Maven | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven | |
name: Build | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
PACT_CLI_IMG: pactfoundation/pact-cli:0.12.3.0 | |
PACT_BROKER_URL: localhost:9292 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Start dependencies with docker-compose | |
run: docker compose -f pact-tools/pact-broker/docker-compose.yml up -d | |
- name: Set up JDK | |
uses: actions/[email protected] | |
with: | |
java-version: 19 | |
distribution: 'adopt' | |
- name: Cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Build welcome-member-email-service | |
run: | | |
# build | |
mvn clean verify -pl welcome-member-email-service -Pcode-coverage -Pstatic-code-analysis | |
# verify pacts | |
## No pacts to verify | |
# create pacts | |
mvn verify -pl welcome-member-email-service -Pconsumer-pacts | |
docker run --rm --net host -v `pwd`/welcome-member-email-service/target/pacts:/target/pacts ${PACT_CLI_IMG} publish /target/pacts --consumer-app-version `git rev-parse --short HEAD` --tag `git rev-parse --abbrev-ref HEAD` --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
# simulate that we run the providers' support pipelines | |
## simulate that there is a prod version of the provider deployed | |
docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --auto-create-version --pacticipant special-membership-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
## verify pacts of welcome member email service that were just published | |
mvn verify -pl special-membership-service -Pprovider-pacts -Dpact.verifier.publishResults=true -Dpact.provider.version=`git rev-parse --short HEAD` -Dpactbroker.consumers=welcome-member-email-service -Dpactbroker.tags=`git rev-parse --abbrev-ref HEAD` -Dpactbroker.user=rw_user -Dpactbroker.pass=rw_pass | |
# meanwhile, this is happening in the welcome member email service pipeline | |
# can-i-deploy | |
docker run --rm --net host ${PACT_CLI_IMG} broker can-i-deploy -v --pacticipant welcome-member-email-service --version `git rev-parse --short HEAD` --to prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
# tag pacts as production | |
docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --pacticipant welcome-member-email-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
- name: Build special-membership-service | |
run: | | |
# build | |
mvn clean verify -pl special-membership-service -Pcode-coverage -Pstatic-code-analysis | |
# verify pacts | |
mvn verify -pl special-membership-service -Pprovider-pacts -Dpact.verifier.publishResults=true -Dpact.provider.version=`git rev-parse --short HEAD` -Dpactbroker.tags=prod -Dpactbroker.user=rw_user -Dpactbroker.pass=rw_pass | |
# create pacts | |
mvn verify -pl special-membership-service -Pconsumer-pacts | |
docker run --rm --net host -v `pwd`/special-membership-service/target/pacts:/target/pacts ${PACT_CLI_IMG} publish /target/pacts --consumer-app-version `git rev-parse --short HEAD` --tag `git rev-parse --abbrev-ref HEAD` --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
# simulate that we run the providers' support pipelines | |
## simulate that there is a prod version of the provider deployed | |
docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --auto-create-version --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 | |
## verify pacts of special membership service that were just published | |
mvn verify -pl credit-score-service -Pprovider-pacts -Dpact.verifier.publishResults=true -Dpact.provider.version=`git rev-parse --short HEAD` -Dpactbroker.consumers=special-membership-service -Dpactbroker.tags=`git rev-parse --abbrev-ref HEAD` -Dpactbroker.user=rw_user -Dpactbroker.pass=rw_pass | |
# meanwhile, this is happening in the special membership service pipeline | |
# can-i-deploy | |
docker run --rm --net host ${PACT_CLI_IMG} broker can-i-deploy -v --pacticipant special-membership-service --version `git rev-parse --short HEAD` --to prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
# tag pacts as production | |
docker run --rm --net host ${PACT_CLI_IMG} broker create-version-tag --pacticipant special-membership-service --version `git rev-parse --short HEAD` --tag prod --broker-base-url ${PACT_BROKER_URL} --broker-username=rw_user --broker-password=rw_pass | |
- name: Build credit-score-service | |
run: | | |
# build | |
mvn clean verify -pl credit-score-service -Pcode-coverage -Pstatic-code-analysis | |
# verify pacts | |
mvn verify -pl credit-score-service -Pprovider-pacts -Dpact.verifier.publishResults=true -Dpact.provider.version=`git rev-parse --short HEAD` -Dpactbroker.tags=prod -Dpactbroker.user=rw_user -Dpactbroker.pass=rw_pass | |
# create pacts | |
## no pacts to create | |
# can-i-deploy | |
## no need to run since it doesn't create any pacts | |
# 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 | |
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 | |
- name: Stop dependencies with docker-compose | |
run: docker compose -f pact-tools/pact-broker/docker-compose.yml down | |
if: always() |