Refactor CircleCI config to run tests and API version checks in parallel

- Split mvn_test job into separate build, test, and api_version_check jobs
- Run test and api_version_check in parallel after build completes
- Both parallel jobs use compiled outputs from build via Maven cache
- Remove unnecessary check_java_version steps
- Remove unused test-logs artifact storage
- Add jacoco:report to generate coverage reports
- Maintain sequential execution in mvn_deploy job
This commit is contained in:
2025-07-03 15:13:15 -05:00
parent 7b2b181427
commit 14a3dad3c8

View File

@ -5,14 +5,6 @@ orbs:
browser-tools: circleci/browser-tools@1.4.7 browser-tools: circleci/browser-tools@1.4.7
commands: commands:
check_java_version:
steps:
- run:
name: Check Java Version
command: |
java -version
echo "Java version check completed"
mvn_build: mvn_build:
steps: steps:
- checkout - checkout
@ -43,13 +35,10 @@ commands:
- run: - run:
name: Run Maven Test name: Run Maven Test
command: | command: |
mvn -s .circleci/mvn-settings.xml -T4 --batch-mode test mvn -s .circleci/mvn-settings.xml -T4 --batch-mode test jacoco:report
- store_artifacts: - store_artifacts:
path: "*/target/site/jacoco/" path: "*/target/site/jacoco/"
when: always when: always
- store_artifacts:
path: "*/target/test-logs/"
when: always
- run: - run:
name: Concatenate test output files name: Concatenate test output files
command: | command: |
@ -156,20 +145,24 @@ commands:
when: always when: always
jobs: jobs:
mvn_test: build:
executor: localstack/default executor: localstack/default
steps: steps:
## - localstack/startup
- check_java_version
- mvn_build - mvn_build
test:
executor: localstack/default
steps:
- mvn_test - mvn_test
api_version_check:
executor: localstack/default
steps:
- check_middleware_api_versions - check_middleware_api_versions
mvn_deploy: mvn_deploy:
executor: localstack/default executor: localstack/default
steps: steps:
## - localstack/startup
- check_java_version
- mvn_build - mvn_build
- mvn_test - mvn_test
- check_middleware_api_versions - check_middleware_api_versions
@ -184,13 +177,31 @@ jobs:
workflows: workflows:
test_only: test_only:
jobs: jobs:
- mvn_test: - build:
context: [ qqq-maven-registry-credentials, build-qqq-sample-app ] context: [ qqq-maven-registry-credentials, build-qqq-sample-app ]
filters: filters:
branches: branches:
ignore: /(dev|integration.*)/ ignore: /(dev|integration.*)/
tags: tags:
ignore: /(version|snapshot)-.*/ ignore: /(version|snapshot)-.*/
- test:
context: [ qqq-maven-registry-credentials, build-qqq-sample-app ]
requires:
- build
filters:
branches:
ignore: /(dev|integration.*)/
tags:
ignore: /(version|snapshot)-.*/
- api_version_check:
context: [ qqq-maven-registry-credentials, build-qqq-sample-app ]
requires:
- build
filters:
branches:
ignore: /(dev|integration.*)/
tags:
ignore: /(version|snapshot)-.*/
deploy: deploy:
jobs: jobs: