hapi-fhir/release-pipeline.yml
longma1 28a1a4d4df
Rel 7 0 mb 2 (#5714)
* pom bump to 7.0.0 (#5615)

* pom bump to 7.0.0

* add version enum

* fixed feb release name

---------

Co-authored-by: Long Ma <long@smilecdr.com>

* Check index existence on raw SQL creation (#5624)

* Add conditional check on index existence before we try again

* Add conditional check on index existence before we try again

* Changelog

* remit

* remit

* debug statements

* 5621 deadlock on caffeine cache when creating a resource with conditional create (#5622)

* Modifying the CacheProvider to avoid doing db I/O within the cache miss value supplier callback.

* Setting the initial capacity of instantiated caches to the cache max size to avoid resizing during operations.

* adding changelog and spotless.

* Fixing typo.

* Addressing comments from code review.

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Searching with more than one chained Bundle SearchParameter returns incorrect results (#5614)

* Failing test

* fix

* changelog

* Avoiding Exception being thrown on @EventListener invocation (#5628)

* replaced EventListener annotation with @PreDestroy

* adding changelog

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* simple fix (#5630)

Co-authored-by: Long Ma <long@smilecdr.com>

* Incorrect version of auto versioned reference for conditional update with urn id placeholder (#5625)

* Incorrect version from versioned_references.auto_at_paths for conditional update - implementation

* Oracle:  Ensure migrated database still takes large resource text updates (#5629)

* First pass at fix to Oracle HFJ_RES_VER.RES_TEXT_VC migration.

* First stab at agreed upon solution.

* Fix error with 4001 by removing unnecessary annotation.

* Spotless and TODO.

* Remove annotation for good and set length to LONG32.

* Fix copyright year.

* Finalize changelog.

* Remove migration changes.  Fix unit test.

* Fix compile error.

* Log output.

* Refactor resource history code into new ResourceHistoryCalculator.

* Spotless.

* Convert record to POJO.

* Restore pre-17 switch statement.

* Finalize new resource history calculator code and tests.

* Spotless.

* Remove logging.

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5633-oracle-hfj-res-ver-clob-migration.yaml

Apply code reviewer suggestion

Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>

* Code review feedback.

---------

Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>

* Fix expansion for `ValueSet` with no concepts based on CodeSystem `urn:ietf:bcp:13` (#5638)

* When fetching the mimetype code system, return empty CodeSystem with NOTSUPPORTED content. Update expansion logic to handle this case. Add some test cases.

* Minor change to fix test

* Rename changelog file

* Remove TODOs as they're replaced by reported issue

* Revert accidental change added with TODO removal

* $expunge operation ignoring ExpungeThreadCount setting in certain cases (#5637)

* $expunge operation ignoring ExpungeThreadCount setting in certain cases - implementation

* Fix Measure group id null pointer exception (#5620)

* Update to new version of clinical reasoning, includes a fix for null pointers on Measure group id

* add changelog

---------

Co-authored-by: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com>

* Rule evaluation:  Allow Bundles with PATCH Parameters (#5641)

* Remove parameters clause.

* Finalize changelog.  Add tests.  Finalize implementation.

* Undo changes to this test.

* Revert all changes to FhirQueryRuleImplTest.  Add new RuleImplOpTest.  Ensure that proper nested Bundle is created for test and other fixes.

* Tweak test.

* Use real rule applier in test and remove all mocks.

* Prevent batch2 job execution to stop for empty chunk when last job st… (#5635)

* Prevent batch2 job execution to stop for empty chunk when last job step is a reduction.
Add output to bulk export result even when empty.

* Fix test

* Unimportant change to force fresh build

* Implement review suggestions

---------

Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>

* Index review fixes (#5649)

* Don't hold locks while adding indices during upgrade.
* concurrent indexing is non-transactional in PG.

* Fix conditional creates without leading '?' (#5646)

* First commit with failing test.

* More tests and logs.

* More logs

* Try new solution for BaseTransactionProcessor.performIdSubstitutionsInMatchUrl().

* Simplify solution.  Add more tests.

* Changelog.

* javadoc

* Searching for Bundles with read all Bundles permission returns 403 (#5644)

* failing test

* another failing test case

* fix

* changelog

* fix bug

* spotless

* cr

* Fix NullPointerException when performing a system bulk export in the presence of PatientIdPartitionInterceptor. (#5660)

* Bump json-path

* Pin parrson

* Bump elastic

* Bump spring version

* Exclude JDBC

* Serializing changes for sensitive data (#5655)

* Add new senstiive data serializer

* Add new senstiive data serializer

* Add new senstiive data serializer

* Remove dead comments

* Change up the test

* review comments

* wip

* Tighten tests and push annotation down

* Tighten tests and push annotation down

* Changelog

* Add test

* 7.0.1-SNAPSHOT bump

* Error code

* Add method used by CDR

* add version enum

* Fix test

* Revert change to other safe version to stop problem with deprecated field

* Rel 7 0 CVE (#5663)

* Bump json-path

* Pin parrson

* Bump elastic

* Bump spring version

* Exclude JDBC

* Descendent fix (#5669)

* Fix "is-a" ValueSet expansion, add "descendent-of" support

* Fixed tests in DSTU3 and R5

* Trigger new build

* Revert "Trigger new build"

This reverts commit 46c672b338db1f85c4f438344bfa828bfc723a37.

* fix default partition setting on resource (#5617)

* fix default partition setting on resource

* changelog

* Handle DEFAULT partition in rule checker.

* Fix spotless

---------

Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>

* pom bump, doc add, version enum add (#5616)

Co-authored-by: Long Ma <long@smilecdr.com>

* fix default partition setting on resource (#5618)

* fix default partition setting on resource
* Handle DEFAULT partition in rule checker.

Co-authored-by: Ken Stevens <khstevens@gmail.com>

* Add setting to make broker not use JacksonMessageConverter (#5611)

* Add setting to make broker not use JacksonMessageConverter

* Add changelog

* Implement suggestions

---------

Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>

* Fix version

* add changelog, add attribution, remove accidental bring-overs

* add changelog, add attribution, remove accidental bring-overs

* Finish jira section

---------

Co-authored-by: Ole Hedegaard <ohe@trifork.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>

* $poll-export-status operation with PatientIdPartitionInterceptor fails with NullPointerException (#5681)

* Fix NullPointerException when performing a system bulk export in the presence of PatientIdPartitionInterceptor.

* Fix NPE on -export-status operation with PatientIdPartitionInterceptor

* 5654 measurescorer bug for denominator exception (#5677)

* update measure bundles and tests for enforced populationId specification on Measure group resources

* bump CR version to PRE17

* fix bug in versionEnumTest

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

---------

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* Revert Remote Terminology lookup operation to support all types of CodeSystem property and convert to them to string type. (#5698)

* Revert Remote Terminology lookup operation to support all types of CodeSystem property and convert to them to string type.

* Spotless fix

* Address code review comments

* version bump to 7.0.0

* pipeline fix

* Update java home

* Updating version to: 7.0.1 post release.

* post mergeback cleanup

* bump clinical-reasoning.version to pre17

* test fix

* version bump to 7.1.5-snapshot

---------

Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Nathan Doef <n.doef@protonmail.com>
Co-authored-by: volodymyr-korzh <132366313+volodymyr-korzh@users.noreply.github.com>
Co-authored-by: Luke deGruchy <luke.degruchy@smilecdr.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: Martha Mitran <martha.mitran@smilecdr.com>
Co-authored-by: JP <jonathan.i.percival@gmail.com>
Co-authored-by: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com>
Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
Co-authored-by: Ole Hedegaard <ohe@trifork.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
Co-authored-by: markiantorno <markiantorno@gmail.com>
2024-02-23 11:03:26 -07:00

183 lines
8.4 KiB
YAML

# HAPI FHIR Release Pipeline
variables:
MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
MAVEN_OPTS: ''
NEW_RELEASE_VERSION:
BRANCH:
trigger: none
pr: none
pool:
vmImage: ubuntu-latest
jobs:
- job: get_release_version
timeoutInMinutes: 5
steps:
- task: PowerShell@2
# This task pulls the <version> value from the hapi-fhir project pom.xml file. All modules are released as
# the same version, at the same time, as defined in the root level pom.xml.
inputs:
targetType: 'inline'
script: |
[xml]$pomXml = Get-Content -Path .\pom.xml
# version
Write-Host $pomXml.project.version
$version_from_pom=$pomXml.project.version
Write-Host "##vso[task.setvariable variable=version_from_pom]$version_from_pom"
displayName: Save pom file version to local variable.
- task: Bash@3
# Prints out the pom version, for debugging purposes
inputs:
targetType: 'inline'
script: echo Pulled version from pom.xml => $(version_from_pom)
displayName: Print out pom version.
- task: Bash@3
# Determines the new release tag label. For existing release branches, this is straightforward,
# as we just take the current project pom version (i.e. 5.7.1). However, for the current master
# branch we often have a branch name like "6.1.5-PRE2-SNAPSHOT", in which case, we need to normalize
# the release label from that project version to get the "maj.min.patch" version we will release.
inputs:
targetType: 'inline'
script: |
echo Current project version set as $version_from_pom
if [[ "$(Build.SourceBranchName)" == "master" ]];
then
echo On master branch. We need to remove PRE tag from pom version.
new_release_version="${version_from_pom%-PRE*}"
else
new_release_version=$(version_from_pom)
fi
echo "##vso[task.setvariable variable=NEW_RELEASE_VERSION]$new_release_version"
echo release HAPI version $new_release_version
displayName: Determine new release version.
- task: Bash@3
# Here we check if the tag we plan to release is already tagged in git, if it is we bomb out
inputs:
targetType: 'inline'
script: |
tag_label="v${NEW_RELEASE_VERSION}"
echo verifying that release version $tag_label does not already exist in git project...
if git rev-list $tag_label >/dev/null
then
echo tag $tag_label already exists in project, please update you pom version and try again
exit 1
else
echo 'tag does not already exist in project, proceeding...'
fi
displayName: Check if deployment already exists.
- task: Bash@3
# Azure pipelines cannot pass variables between pipelines, but it can pass files, so we
# pass the determined build tag (ex: 5.7.4) as a string in a file.
# This is used in the release pipeline, so we create it here.
inputs:
targetType: 'inline'
script: |
echo $(NEW_RELEASE_VERSION)
echo "$(NEW_RELEASE_VERSION)" > $(System.DefaultWorkingDirectory)/NEW_RELEASE_VERSION
displayName: Save release label to file.
- task: CopyFiles@2
# Copies the NEW_RELEASE_VERSION file containing the pom version to the staging directory
inputs:
SourceFolder: '$(System.Defaultworkingdirectory)'
Contents: "$(System.DefaultWorkingDirectory)/NEW_RELEASE_VERSION"
TargetFolder: '$(build.artifactstagingdirectory)'
displayName: Copy the version file to the artifact staging directory.
- task: PublishBuildArtifacts@1
# Publishes the files we've moved into the staging directory, so they can be accessed by the
# release pipeline.
displayName: 'Publish Build Artifacts'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
- job: get_branch_id
timeoutInMinutes: 5
steps:
- task: PowerShell@2
# This task pulls the branch name from the azure build environment and sets as a job-level variable.
inputs:
targetType: 'inline'
script: |
$branch_name = '$(Build.SourceBranchName)'
Write-Host "##vso[task.setvariable variable=branch_name]$branch_name"
displayName: Save branch name to local variable.
- task: Bash@3
# Prints out the branch name, for debugging purposes
inputs:
targetType: 'inline'
script: echo Current branch name => $(branch_name)
displayName: Print out the branch name.
- task: Bash@3
# Azure pipelines cannot pass variables between pipelines, but it can pass files, so we
# pass the branch name (ex: rel_2022_05) as a string in a file.
# This is used in the release pipeline, so we create it here.
inputs:
targetType: 'inline'
script: |
echo $(branch_name)
BRANCH=$(branch_name)
echo "$BRANCH" > $(System.DefaultWorkingDirectory)/BRANCH
displayName: Save branch name to file.
- task: CopyFiles@2
# Copies the BRANCH file containing the pom version to the staging directory
inputs:
SourceFolder: '$(System.Defaultworkingdirectory)'
Contents: "$(System.DefaultWorkingDirectory)/BRANCH"
TargetFolder: '$(build.artifactstagingdirectory)'
displayName: Copy the branch name file to the artifact staging directory.
- task: PublishBuildArtifacts@1
# Publishes the files we've moved into the staging directory, so they can be accessed by the
# release pipeline.
displayName: 'Publish Build Artifacts'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
- job: buildaroni
# We're going to do a full build, including all unit and integration tests. We do this here, before any
# actual release pipeline kicks off, and we don't do it again at any point in the release pipeline. The assumption here
# is that once we pull the code, it won't change again on this branch until the release is complete. We
# want to fail fast if there is an issue, and avoid running the tests more than once, so it doesn't take all day.
timeoutInMinutes: 360
dependsOn: ['get_release_version', 'get_branch_id']
container:
image: smilecdr/hapi-build:latest
steps:
- task: Cache@2
inputs:
key: 'maven | "$(Agent.OS)" | ./pom.xml'
path: $(MAVEN_CACHE_FOLDER)
- task: DockerInstaller@0.209.00
displayName: Docker Installer
inputs:
dockerVersion: 17.09.0-ce
releaseType: stable
- task: Maven@3
env:
JAVA_HOME_11_X64: /opt/java/openjdk
displayName: Checkstyle Build
inputs:
mavenPomFile: 'hapi-fhir-checkstyle/pom.xml'
goals: 'clean install'
options: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
jdkVersionOption: 1.11
- 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: /opt/java/openjdk
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 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