diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 415f83bc367..f98108103af 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -2,100 +2,132 @@
variables:
MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
- #MAVEN_CACHE_FOLDER: $(Agent.TempDirectory)/.m2/repository
- #MAVEN_OPTS: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
MAVEN_OPTS: ''
+ NEW_RELEASE_VERSION:
+ BRANCH:
-trigger:
- - master
+trigger: none
pool:
- vmImage: 'ubuntu-latest'
-
-jobs:
- - job: Build
- timeoutInMinutes: 360
- container: maven:3.8-openjdk-17
- steps:
- - task: Cache@2
- inputs:
- key: 'maven | "$(Agent.OS)" | ./pom.xml'
- path: $(MAVEN_CACHE_FOLDER)
- - task: Maven@3
- env:
- JAVA_HOME_11_X64: /usr/java/openjdk-17
- displayName: Checkstyle Build
- inputs:
- mavenPomFile: 'hapi-fhir-checkstyle/pom.xml'
- goals: 'clean install'
- options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
- jdkVersionOption: 1.11
- - task: DockerInstaller@0
- displayName: Docker Installer
- inputs:
- dockerVersion: 17.09.0-ce
- releaseType: stable
- - task: Bash@3
- inputs:
- targetType: 'inline'
- script: mkdir -p $(MAVEN_CACHE_FOLDER); pwd; ls -al $(MAVEN_CACHE_FOLDER)
- - task: Maven@3
- env:
- JAVA_HOME_11_X64: /usr/java/openjdk-17
- inputs:
- goals: 'clean install'
- # These are Maven CLI options (and show up in the build logs) - "-nsu"=Don't update snapshots. We can remove this when Maven OSS is more healthy
- options: '-P ALLMODULES,JACOCO,CI,ERRORPRONE -e -B -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) -Dmaven.wagon.http.pool=false -Dhttp.keepAlive=false -Dstyle.color=always -Djansi.force=true'
- # These are JVM options (and don't show up in the build logs)
- mavenOptions: '-Xmx2048m $(MAVEN_OPTS) -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
- jdkVersionOption: 1.11
- - task: CopyFiles@2
- condition: always()
- inputs:
- sourceFolder: '$(System.DefaultWorkingDirectory)/'
- contents: '**/target/*-reports/*.txt'
- targetFolder: '$(Build.ArtifactStagingDirectory)'
- - task: PublishPipelineArtifact@1
- displayName: 'Publish Full Test Output'
- condition: always()
- inputs:
- targetPath: '$(Build.ArtifactStagingDirectory)/'
- artifactName: 'full_logs_$(Build.BuildId)_$(Build.BuildNumber)_$(System.JobId).zip'
- - script: bash <(curl https://codecov.io/bash) -t $(CODECOV_TOKEN)
- displayName: 'codecov'
- - task: PublishTestResults@2
- inputs:
- testResultsFormat: 'JUnit'
- testResultsFiles: '**/TEST-*.xml'
- - task: PublishCodeCoverageResults@1
- inputs:
- codeCoverageTool: 'JaCoCo'
- summaryFileLocation: $(System.DefaultWorkingDirectory)/hapi-fhir-jacoco/target/site/jacoco-report/jacoco.xml
- reportDirectory: $(System.DefaultWorkingDirectory)/hapi-fhir-jacoco/target/site/jacoco-report/
- failIfCoverageEmpty: false
-
-# Potential Additional Maven3 Options:
-#publishJUnitResults: true
-#testResultsFiles: '**/surefire-reports/TEST-*.xml' # Required when publishJUnitResults == True
-#testRunTitle: # Optional
-#codeCoverageToolOption: 'None' # Optional. Options: none, cobertura, jaCoCo. Enabling code coverage inserts the `clean` goal into the Maven goals list when Maven runs.
-#codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
-#codeCoverageClassFilesDirectories: # Optional
-#codeCoverageSourceDirectories: # Optional
-#codeCoverageFailIfEmpty: false # Optional
-#javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
-#jdkVersionOption: 'default' # Optional. Options: default, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
-#jdkDirectory: # Required when javaHomeOption == Path
-#jdkArchitectureOption: 'x64' # Optional. Options: x86, x64
-#mavenVersionOption: 'Default' # Options: default, path
-#mavenDirectory: # Required when mavenVersionOption == Path
-#mavenSetM2Home: false # Required when mavenVersionOption == Path
-#mavenAuthenticateFeed: false
-#effectivePomSkip: false
-#sonarQubeRunAnalysis: false
-#sqMavenPluginVersionChoice: 'latest' # Required when sonarQubeRunAnalysis == True# Options: latest, pom
-#checkStyleRunAnalysis: false # Optional
-#pmdRunAnalysis: false # Optional
-#findBugsRunAnalysis: false # Optional
-
+ vmImage: ubuntu-latest
+stages:
+ - stage:
+ displayName: "module-tests"
+ jobs:
+ - template: test-job-template.yml
+ parameters:
+ modules:
+ - name: hapi_fhir_jpaserver_test_utilities
+ module: hapi-fhir-jpaserver-test-utilities
+ - name: hapi_fhir_structures_r4
+ module: hapi-fhir-structures-r4
+ - name: hapi_fhir_jpaserver_base
+ module: hapi-fhir-jpaserver-base
+ - name: hapi_deployable_pom
+ module: hapi-deployable-pom
+ - name: hapi_fhir_android
+ module: hapi-fhir-android
+ - name: hapi_fhir_base
+ module: hapi-fhir-base
+ - name: hapi_fhir_batch
+ module: hapi-fhir-batch
+ - name: hapi_fhir_bom
+ module: hapi-fhir-bom
+ - name: hapi_fhir_checkstyle
+ module: hapi-fhir-checkstyle
+ - name: hapi_fhir_cli
+ module: hapi-fhir-cli
+ - name: hapi_fhir_client
+ module: hapi-fhir-client
+ - name: hapi_fhir_client_okhttp
+ module: hapi-fhir-client-okhttp
+ - name: hapi_fhir_converter
+ module: hapi-fhir-converter
+ - name: hapi_fhir_dist
+ module: hapi-fhir-dist
+ - name: hapi_fhir_docs
+ module: hapi-fhir-docs
+ - name: hapi_fhir_jaxrsserver_base
+ module: hapi-fhir-jaxrsserver-base
+ - name: hapi_fhir_jpa
+ module: hapi-fhir-jpa
+# Put to top, but kept in order here
+# - name: hapi_fhir_jpaserver_base
+# module: hapi-fhir-jpaserver-base
+ - name: hapi_fhir_jpaserver_cql
+ module: hapi-fhir-jpaserver-cql
+ - name: hapi_fhir_jpaserver_elastic_test_utilities
+ module: hapi-fhir-jpaserver-elastic-test-utilities
+ - name: hapi_fhir_jpaserver_mdm
+ module: hapi-fhir-jpaserver-mdm
+ - name: hapi_fhir_jpaserver_model
+ module: hapi-fhir-jpaserver-model
+ - name: hapi_fhir_jpaserver_searchparam
+ module: hapi-fhir-jpaserver-searchparam
+ - name: hapi_fhir_jpaserver_subscription
+ module: hapi-fhir-jpaserver-subscription
+# Put to top, but kept in order here
+# - name: hapi_fhir_jpaserver_test_utilities
+# module: hapi-fhir-jpaserver-test-utilities
+ - name: hapi_fhir_jpaserver_uhnfhirtest
+ module: hapi-fhir-jpaserver-uhnfhirtest
+ - name: hapi_fhir_server
+ module: hapi-fhir-server
+ - name: hapi_fhir_server_mdm
+ module: hapi-fhir-server-mdm
+ - name: hapi_fhir_server_openapi
+ module: hapi-fhir-server-openapi
+ - name: hapi_fhir_spring_boot
+ module: hapi-fhir-spring-boot
+ - name: hapi_fhir_sql_migrate
+ module: hapi-fhir-sql-migrate
+ - name: hapi_fhir_storage
+ module: hapi-fhir-storage
+ - name: hapi_fhir_storage_batch2
+ module: hapi-fhir-storage-batch2
+ - name: hapi_fhir_storage_batch2_jobs
+ module: hapi-fhir-storage-batch2-jobs
+ - name: hapi_fhir_storage_mdm
+ module: hapi-fhir-storage-mdm
+ - name: hapi_fhir_storage_test_utilities
+ module: hapi-fhir-storage-test-utilities
+ - name: hapi_fhir_structures_dstu2
+ module: hapi-fhir-structures-dstu2
+ - name: hapi_fhir_structures_dstu2_1
+ module: hapi-fhir-structures-dstu2.1
+ - name: hapi_fhir_structures_dstu3
+ module: hapi-fhir-structures-dstu3
+ - name: hapi_fhir_structures_hl7org_dstu2
+ module: hapi-fhir-structures-hl7org-dstu2
+# Put to top, but kept in order here
+# - name: hapi_fhir_structures_r4
+# module: hapi-fhir-structures-r4
+ - name: hapi_fhir_structures_r5
+ module: hapi-fhir-structures-r5
+ - name: hapi_fhir_test_utilities
+ module: hapi-fhir-test-utilities
+ - name: hapi_fhir_testpage_overlay
+ module: hapi-fhir-testpage-overlay
+ - name: hapi_fhir_validation
+ module: hapi-fhir-validation
+ - name: hapi_fhir_validation_resources_dstu2
+ module: hapi-fhir-validation-resources-dstu2
+ - name: hapi_fhir_validation_resources_dstu2_1
+ module: hapi-fhir-validation-resources-dstu2.1
+ - name: hapi_fhir_validation_resources_dstu3
+ module: hapi-fhir-validation-resources-dstu3
+ - name: hapi_fhir_validation_resources_r4
+ module: hapi-fhir-validation-resources-r4
+ - name: hapi_fhir_validation_resources_r5
+ module: hapi-fhir-validation-resources-r5
+ - name: hapi_tinder_plugin
+ module: hapi-tinder-plugin
+ - name: hapi_tinder_test
+ module: hapi-tinder-test
+ - name: tests_hapi_fhir_base_test_jaxrsserver_kotlin
+ module: tests/hapi-fhir-base-test-jaxrsserver-kotlin
+ - name: tests_hapi_fhir_base_test_mindeps_client
+ module: tests/hapi-fhir-base-test-mindeps-client
+ - name: tests_hapi_fhir_base_test_mindeps_server
+ module: tests/hapi-fhir-base-test-mindeps-server
diff --git a/hapi-fhir-base/pom.xml b/hapi-fhir-base/pom.xml
index fd53ff6a40a..60ab5ed2025 100644
--- a/hapi-fhir-base/pom.xml
+++ b/hapi-fhir-base/pom.xml
@@ -136,21 +136,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-batch/pom.xml b/hapi-fhir-batch/pom.xml
index 5d0edf0fece..bf925417e9c 100644
--- a/hapi-fhir-batch/pom.xml
+++ b/hapi-fhir-batch/pom.xml
@@ -69,19 +69,5 @@
-
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
diff --git a/hapi-fhir-client-okhttp/pom.xml b/hapi-fhir-client-okhttp/pom.xml
index 36d9f538800..53b8814b629 100644
--- a/hapi-fhir-client-okhttp/pom.xml
+++ b/hapi-fhir-client-okhttp/pom.xml
@@ -96,27 +96,5 @@
${project.version}
test
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
-
-
diff --git a/hapi-fhir-client/pom.xml b/hapi-fhir-client/pom.xml
index d1078f4a7f4..4e7265236b8 100644
--- a/hapi-fhir-client/pom.xml
+++ b/hapi-fhir-client/pom.xml
@@ -39,21 +39,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-converter/pom.xml b/hapi-fhir-converter/pom.xml
index 1b7d0fadb4c..e9c2da3c078 100644
--- a/hapi-fhir-converter/pom.xml
+++ b/hapi-fhir-converter/pom.xml
@@ -215,23 +215,6 @@
-
-
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
diff --git a/hapi-fhir-jaxrsserver-base/pom.xml b/hapi-fhir-jaxrsserver-base/pom.xml
index 83e1d045e44..a1086a8adbc 100644
--- a/hapi-fhir-jaxrsserver-base/pom.xml
+++ b/hapi-fhir-jaxrsserver-base/pom.xml
@@ -167,27 +167,4 @@
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml
index 109fe3700b3..78dace5cd44 100644
--- a/hapi-fhir-jpaserver-base/pom.xml
+++ b/hapi-fhir-jpaserver-base/pom.xml
@@ -437,21 +437,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
ca.uhn.hapi.fhir
hapi-tinder-plugin
diff --git a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
index 8a4caf5c7c7..d81277e00df 100644
--- a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
+++ b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
@@ -243,21 +243,6 @@
${skipFailsafe}
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-checkstyle-plugin
diff --git a/hapi-fhir-jpaserver-mdm/pom.xml b/hapi-fhir-jpaserver-mdm/pom.xml
index 2216fe1fb07..e3dfa61fe52 100644
--- a/hapi-fhir-jpaserver-mdm/pom.xml
+++ b/hapi-fhir-jpaserver-mdm/pom.xml
@@ -117,18 +117,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
diff --git a/hapi-fhir-jpaserver-model/pom.xml b/hapi-fhir-jpaserver-model/pom.xml
index 938aeeac348..68ac96aee79 100644
--- a/hapi-fhir-jpaserver-model/pom.xml
+++ b/hapi-fhir-jpaserver-model/pom.xml
@@ -155,19 +155,5 @@
-
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-searchparam/pom.xml b/hapi-fhir-jpaserver-searchparam/pom.xml
index 84e19aae6bb..2b4a5637a36 100755
--- a/hapi-fhir-jpaserver-searchparam/pom.xml
+++ b/hapi-fhir-jpaserver-searchparam/pom.xml
@@ -159,18 +159,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-jpaserver-subscription/pom.xml b/hapi-fhir-jpaserver-subscription/pom.xml
index 1804f25f751..b2daa2d8cd1 100644
--- a/hapi-fhir-jpaserver-subscription/pom.xml
+++ b/hapi-fhir-jpaserver-subscription/pom.xml
@@ -135,19 +135,5 @@
-
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
diff --git a/hapi-fhir-jpaserver-test-utilities/pom.xml b/hapi-fhir-jpaserver-test-utilities/pom.xml
index 5f60feb9bf1..f4af4d7db7e 100644
--- a/hapi-fhir-jpaserver-test-utilities/pom.xml
+++ b/hapi-fhir-jpaserver-test-utilities/pom.xml
@@ -243,21 +243,6 @@
${skipFailsafe}
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-checkstyle-plugin
diff --git a/hapi-fhir-server-mdm/pom.xml b/hapi-fhir-server-mdm/pom.xml
index c1769414d1e..740e9c2d109 100644
--- a/hapi-fhir-server-mdm/pom.xml
+++ b/hapi-fhir-server-mdm/pom.xml
@@ -131,18 +131,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.felix
maven-bundle-plugin
diff --git a/hapi-fhir-server/pom.xml b/hapi-fhir-server/pom.xml
index 2fa785fc8e0..4a0fe9d0231 100644
--- a/hapi-fhir-server/pom.xml
+++ b/hapi-fhir-server/pom.xml
@@ -114,21 +114,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-sql-migrate/pom.xml b/hapi-fhir-sql-migrate/pom.xml
index e0d07ecfc82..f90d1d4d078 100644
--- a/hapi-fhir-sql-migrate/pom.xml
+++ b/hapi-fhir-sql-migrate/pom.xml
@@ -107,22 +107,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
org.apache.maven.plugins
diff --git a/hapi-fhir-storage-batch2/pom.xml b/hapi-fhir-storage-batch2/pom.xml
index f4bdde6a784..15de78d1463 100644
--- a/hapi-fhir-storage-batch2/pom.xml
+++ b/hapi-fhir-storage-batch2/pom.xml
@@ -103,19 +103,5 @@
-
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
diff --git a/hapi-fhir-storage/pom.xml b/hapi-fhir-storage/pom.xml
index 38be169a643..55d5518e637 100644
--- a/hapi-fhir-storage/pom.xml
+++ b/hapi-fhir-storage/pom.xml
@@ -169,19 +169,5 @@
-
-
- org.jacoco
- jacoco-maven-plugin
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
-
diff --git a/hapi-fhir-structures-dstu2.1/pom.xml b/hapi-fhir-structures-dstu2.1/pom.xml
index 54cbf3e0315..8a4dbc5c69a 100644
--- a/hapi-fhir-structures-dstu2.1/pom.xml
+++ b/hapi-fhir-structures-dstu2.1/pom.xml
@@ -250,21 +250,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-structures-dstu2/pom.xml b/hapi-fhir-structures-dstu2/pom.xml
index db35dfb5d16..fc4238840e4 100644
--- a/hapi-fhir-structures-dstu2/pom.xml
+++ b/hapi-fhir-structures-dstu2/pom.xml
@@ -209,21 +209,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-structures-hl7org-dstu2/pom.xml b/hapi-fhir-structures-hl7org-dstu2/pom.xml
index 3783ca9a3b1..51f73f49770 100644
--- a/hapi-fhir-structures-hl7org-dstu2/pom.xml
+++ b/hapi-fhir-structures-hl7org-dstu2/pom.xml
@@ -261,21 +261,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-structures-r4/pom.xml b/hapi-fhir-structures-r4/pom.xml
index e294a1fdf9a..8b41368803a 100644
--- a/hapi-fhir-structures-r4/pom.xml
+++ b/hapi-fhir-structures-r4/pom.xml
@@ -331,21 +331,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-structures-r5/pom.xml b/hapi-fhir-structures-r5/pom.xml
index 1618c8b46c7..5d149b71712 100644
--- a/hapi-fhir-structures-r5/pom.xml
+++ b/hapi-fhir-structures-r5/pom.xml
@@ -316,21 +316,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-fhir-validation/pom.xml b/hapi-fhir-validation/pom.xml
index 9ee8e1c89e0..eabbfed08a1 100644
--- a/hapi-fhir-validation/pom.xml
+++ b/hapi-fhir-validation/pom.xml
@@ -333,21 +333,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/hapi-tinder-test/pom.xml b/hapi-tinder-test/pom.xml
index 7f797007c40..81331a1a006 100644
--- a/hapi-tinder-test/pom.xml
+++ b/hapi-tinder-test/pom.xml
@@ -415,21 +415,6 @@
-
- org.jacoco
- jacoco-maven-plugin
-
- true
-
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
-
diff --git a/test-job-template.yml b/test-job-template.yml
new file mode 100644
index 00000000000..52790b11e87
--- /dev/null
+++ b/test-job-template.yml
@@ -0,0 +1,147 @@
+# HAPI FHIR Build Pipeline
+
+parameters:
+ param: [ ]
+
+jobs:
+ - job: setup
+ displayName: setup-and-cache-build
+ timeoutInMinutes: 60
+ container: maven:3.8-openjdk-17
+ pool:
+ vmImage: ubuntu-latest
+ steps:
+ - task: Cache@2
+ inputs:
+ key: 'maven | "$(Agent.OS)" | ./pom.xml'
+ path: $(MAVEN_CACHE_FOLDER)
+ - task: Bash@3
+ inputs:
+ targetType: 'inline'
+ script: mkdir -p $(MAVEN_CACHE_FOLDER); pwd; ls -al $(MAVEN_CACHE_FOLDER)
+ - task: Maven@3
+ env:
+ JAVA_HOME_11_X64: /usr/java/openjdk-17
+ inputs:
+ goals: 'install'
+ # These are Maven CLI options (and show up in the build logs) - "-nsu"=Don't update snapshots. We can remove this when Maven OSS is more healthy
+ options: '-P ALLMODULES,CI,FASTINSTALL -e -B -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) -Dmaven.javadoc.skip=true -Dmaven.wagon.http.pool=false -Dhttp.keepAlive=false -Dstyle.color=always -Djansi.force=true'
+ # These are JVM options (and don't show up in the build logs)
+ mavenOptions: '-Xmx1024m $(MAVEN_OPTS) -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
+ jdkVersionOption: 1.11
+ - ${{ each p in parameters.modules }}:
+ - job: ${{ p.name }}
+ timeoutInMinutes: 60
+ displayName: ${{ p.name }}
+ dependsOn: [ 'setup' ]
+ container: maven:3.8-openjdk-17
+ pool:
+ vmImage: ubuntu-latest
+ steps:
+ - script: echo testing module ${{ p.module }}
+ - task: DockerInstaller@0
+ displayName: Docker Installer
+ inputs:
+ dockerVersion: 17.09.0-ce
+ releaseType: stable
+ - task: Cache@2
+ inputs:
+ key: 'maven | "$(Agent.OS)" | ./pom.xml'
+ path: $(MAVEN_CACHE_FOLDER)
+# - task: Maven@3
+# env:
+# JAVA_HOME_11_X64: /usr/java/openjdk-17
+# displayName: Checkstyle Build
+# inputs:
+# mavenPomFile: 'hapi-fhir-checkstyle/pom.xml'
+# goals: 'clean install'
+# options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
+# jdkVersionOption: 1.11
+ - task: Maven@3
+ env:
+ JAVA_HOME_11_X64: /usr/java/openjdk-17
+ inputs:
+ mavenPomFile: '$(System.DefaultWorkingDirectory)/pom.xml'
+ goals: 'clean test jacoco:report -pl ${{ p.module }}'
+ # These are Maven CLI options (and show up in the build logs) - "-nsu"=Don't update snapshots. We can remove this when Maven OSS is more healthy
+ options: '-P ALLMODULES,JACOCO,CI -e -B -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) -Dmaven.wagon.http.pool=false -Dhttp.keepAlive=false -Dstyle.color=always -Djansi.force=true'
+ # These are JVM options (and don't show up in the build logs)
+ mavenOptions: '-Xmx1024m $(MAVEN_OPTS) -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
+ jdkVersionOption: 1.11
+ # Copy testing log files and publish to pipeline run on Azure.
+ - task: CopyFiles@2
+ condition: always()
+ inputs:
+ sourceFolder: '$(System.DefaultWorkingDirectory)/'
+ contents: '**/target/*-reports/*.txt'
+ targetFolder: '$(Build.ArtifactStagingDirectory)'
+ - task: PublishPipelineArtifact@1
+ displayName: 'Publish Full Test Output'
+ condition: always()
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)/'
+ artifactName: '${{p.name}}_full_logs_$(Build.BuildId)_$(Build.BuildNumber)_$(System.JobId).zip'
+ # Publish target directory
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish generated build files'
+ continueOnError: true
+ inputs:
+ pathToPublish: '$(System.DefaultWorkingDirectory)/${{ p.module }}/target/'
+ parallel: true
+ artifactName: '${{ p.name }}_target'
+ - job:
+ pool:
+ vmImage: ubuntu-latest
+ timeoutInMinutes: 60
+ displayName: generate_test_reports
+ container: maven:3.8-openjdk-17
+ dependsOn:
+ - ${{ each p in parameters.modules }}:
+ - ${{ p.name }}
+ steps:
+ - ${{ each p in parameters.modules }}:
+ - task: Bash@3
+ inputs:
+ targetType: 'inline'
+ script: mkdir -p $(System.DefaultWorkingDirectory)/${{ p.module }}/target/
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download jacoco test coverage result exec file for ${{ p.name }}'
+ continueOnError: true
+ inputs:
+ buildType: 'current'
+ downloadType: 'single'
+ artifactName: '${{ p.name }}_target'
+ downloadPath: '$(System.DefaultWorkingDirectory)/'
+ # Copy contents from downloaded artifact directory to final target directory.
+ - task: CopyFiles@2
+ condition: always()
+ inputs:
+ sourceFolder: '$(System.DefaultWorkingDirectory)/${{ p.name }}_target/'
+ contents: '**'
+ targetFolder: '$(System.DefaultWorkingDirectory)/${{ p.module }}/target/'
+ - task: Maven@3
+ env:
+ JAVA_HOME_11_X64: /usr/java/openjdk-17
+ inputs:
+ mavenPomFile: '$(System.DefaultWorkingDirectory)/pom.xml'
+ goals: 'jacoco:report-aggregate'
+ # These are Maven CLI options (and show up in the build logs) - "-nsu"=Don't update snapshots. We can remove this when Maven OSS is more healthy
+ options: '-P ALLMODULES,JACOCO'
+ # These are JVM options (and don't show up in the build logs)
+ mavenOptions: '-Xmx1024m $(MAVEN_OPTS) -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
+ jdkVersionOption: 1.11
+ - bash: |
+ curl -Os https://uploader.codecov.io/latest/linux/codecov
+ chmod +x codecov
+ ./codecov -t $(CODECOV_TOKEN) -R hapi-fhir-jacoco/target/site/jacoco-aggregate/
+ displayName: 'codecov'
+ - task: PublishTestResults@2
+ inputs:
+ testResultsFormat: 'JUnit'
+ testResultsFiles: '**/TEST-*.xml'
+ - task: PublishCodeCoverageResults@1
+ inputs:
+ codeCoverageTool: 'JaCoCo'
+ summaryFileLocation: $(System.DefaultWorkingDirectory)/hapi-fhir-jacoco/target/site/jacoco-aggregate/jacoco.xml
+ reportDirectory: $(System.DefaultWorkingDirectory)/hapi-fhir-jacoco/target/site/jacoco-report/
+ failIfCoverageEmpty: true