# This pipeline produces a SNAPSHOT build for each of the sub modules in # the core library, and publishes them to ossrh. pr: none trigger: - master parameters: - name: modulesToCache displayName: Module Target Directories to Cache type: object default: modules: - org.hl7.fhir.utilities - org.hl7.fhir.dstu2 - org.hl7.fhir.dstu2016may - org.hl7.fhir.dstu3 - org.hl7.fhir.r4 - org.hl7.fhir.r4b - org.hl7.fhir.r5 - org.hl7.fhir.convertors - org.hl7.fhir.validation - org.hl7.fhir.validation.cli - org.hl7.fhir.report - name: modulesToTest displayName: Modules to Test type: object default: modules: - utilities - dstu2 - dstu2016may - dstu3 - r4 - r4b - r5 - convertors - validation variables: - group: PGP_VAR_GROUP - group: SONATYPE_VAR_GROUP - group: GIT_VAR_GROUP - name: MAVEN_CACHE_FOLDER value: $(Pipeline.Workspace)/.m2/repository jobs: - template: setup-and-cache-job-template.yml parameters: modulesToCache: ${{ parameters.modulesToCache.modules }} signArtifacts: true - template: test-unit-jobs-template.yml parameters: testUnits: - name: ubuntu_java_11 vmImage: "ubuntu-latest" javaToolOptions: jdkVersion: 1.11 skipJaCoCo: true modules: ${{ parameters.modulesToTest.modules }} - job: deploy_to_sonatype dependsOn: - ${{ each module in parameters.modulesToTest.modules }}: - ubuntu_java_11_${{ module }} pool: vmImage: "ubuntu-latest" steps: - task: Cache@2 displayName: Cache maven artifacts inputs: key: maven | $(Build.BuildId) | artifacts path: $(MAVEN_CACHE_FOLDER) - template: cache-target-tasks-template.yml parameters: modules: ${{ parameters.modulesToCache.modules }} - template: setup-signing-tasks-template.yml # Deploy the SNAPSHOT artifact to sonatype nexus. # This is done for the master branch merges only. - task: Maven@3 displayName: 'Deploy to Sonatype staging' inputs: mavenPomFile: '$(System.DefaultWorkingDirectory)/pom.xml' goals: jar:jar deploy:deploy javaHomeOption: 'JDKVersion' jdkVersionOption: '1.11' jdkArchitectureOption: 'x64' options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) --settings $(Agent.TempDirectory)/settings.xml -pl "!org.hl7.fhir.report, !org.hl7.fhir.validation.cli" -Dmaven.test.skip -DdeployToSonatype' mavenOptions: '-Xmx768m -Dmaven.resolver.transport=wagon' publishJUnitResults: false - job: deploy_to_github dependsOn: - ${{ each module in parameters.modulesToTest.modules }}: - ubuntu_java_11_${{ module }} pool: vmImage: "ubuntu-latest" steps: - task: Cache@2 displayName: Cache maven artifacts inputs: key: maven | $(Build.BuildId) | artifacts path: $(MAVEN_CACHE_FOLDER) - template: cache-target-tasks-template.yml parameters: modules: ${{ parameters.modulesToCache.modules }} - template: setup-signing-tasks-template.yml # Deploy the SNAPSHOT artifact to GitHub packages. # This is done for the master branch merges only. - task: Maven@3 displayName: 'Deploy to GitHub packages' inputs: mavenPomFile: '$(System.DefaultWorkingDirectory)/pom.xml' goals: jar:jar deploy:deploy javaHomeOption: 'JDKVersion' jdkVersionOption: '1.11' jdkArchitectureOption: 'x64' options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) --settings $(Agent.TempDirectory)/settings.xml -pl "!org.hl7.fhir.report, !org.hl7.fhir.validation.cli" -Dmaven.test.skip -DdeployToGitHub' mavenOptions: '-Xmx768m -Dmaven.resolver.transport=wagon' publishJUnitResults: false - job: generate_i8n_csv_png_and_commit dependsOn: setup #- ${{ each module in parameters.modulesToTest.modules }}: # - ubuntu_java_11_${{ module }} variables: # Normally this test outputs to console. This variable appears as env param # I18N_COVERAGE_FILE, which tells the test to write the output to a file # instead. - name: i18n.coverage.file value: ../i18n-coverage.csv pool: vmImage: "ubuntu-latest" steps: # For creating the snapshot release with maven, we need to build a fake settings.xml for it to read from. # This is done for the master branch merges only. - task: Cache@2 displayName: Cache maven artifacts inputs: key: maven | $(Build.BuildId) | artifacts path: $(MAVEN_CACHE_FOLDER) - template: cache-target-tasks-template.yml parameters: modules: ${{ parameters.modulesToCache.modules }} - bash: | git config --global user.email $(GIT_USER_EMAIL) git config --global user.name $(GIT_USER_NAME) displayName: 'Set up git' # Install pip packages - bash: | pip3 install matplotlib pip3 install numpy pip3 install pandas displayName: 'Set up python packages' - task: Maven@3 inputs: mavenPomFile: '$(System.DefaultWorkingDirectory)/pom.xml' options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) -pl org.hl7.fhir.utilities ' mavenOptions: '-Dtest=I18nCoverageTest#testPhraseCoverage' javaHomeOption: 'JDKVersion' jdkVersionOption: '1.11' jdkArchitectureOption: 'x64' goals: 'surefire:test' displayName: 'Run i18n coverage test to generate csv' - task: PythonScript@0 inputs: scriptSource: 'filePath' scriptPath: .azure/i18n-coverage-table/generate-i18n-coverage-table.py arguments: displayName: 'Make png table from coverage test csv' # Verify png file generation - bash: | ls -l ./i18n-coverage-table.png - bash: | git fetch git checkout master git status git add ./i18n-coverage.csv git add ./i18n-coverage-table.png git commit . -m "Updating i18n-coverage csv and png table ***NO_CI***" git push https://$(GIT_PAT)@github.com/hapifhir/org.hl7.fhir.core.git displayName: 'Push updated csv and plot to git.'