# 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 pool: vmImage: "ubuntu-16.04" variables: - group: PGP_VAR_GROUP - group: SONATYPE_VAR_GROUP - group: GIT_VAR_GROUP steps: # We need a valid signing key. # The next two steps download the public and private keys from the # secure library files. - task: DownloadSecureFile@1 displayName: 'Download public key.' inputs: secureFile: public.key - task: DownloadSecureFile@1 displayName: 'Download private key.' inputs: secureFile: private.key # Import both the private and public keys into gpg for signing. - bash: | gpg --import --no-tty --batch --yes $(Agent.TempDirectory)/public.key gpg --import --no-tty --batch --yes $(Agent.TempDirectory)/private.key gpg --list-keys --keyid-format LONG gpg --list-secret-keys --keyid-format LONG displayName: 'Import signing keys.' # 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. - bash: | cat >$(System.DefaultWorkingDirectory)/settings.xml <<EOL <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>github</id> <username>$(GIT_USER_NAME)</username> <password>$(GIT_PAT)</password> </server> <server> <id>ossrh</id> <username>$(SONATYPE_USER)</username> <password>$(SONATYPE_PASS)</password> </server> <server> <id>$(PGP_KEYNAME)</id> <passphrase>$(PGP_PASSPHRASE)</passphrase> </server> <server> <id>github-releases</id> <username>markiantorno</username> <password>$(GIT_PACKAGE_PAT)</password> </server> </servers> <profiles> <profile> <id>release</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.keyname>$(PGP_KEYNAME)</gpg.keyname> </properties> </profile> </profiles> </settings> EOL displayName: 'Create .mvn/settings.xml' # 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: deploy options: '--settings $(System.DefaultWorkingDirectory)/settings.xml -pl "!org.hl7.fhir.report, !org.hl7.fhir.validation.cli" -DdeployToSonatype' publishJUnitResults: false # 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: deploy options: '--settings $(System.DefaultWorkingDirectory)/settings.xml -pl "!org.hl7.fhir.report, !org.hl7.fhir.validation.cli" -Dmaven.test.skip -DdeployToGitHub' publishJUnitResults: false