Adding Pipeline to publish SNAPSHOT for each module
[skip ci]
This commit is contained in:
parent
998d1e0afc
commit
af41297803
|
@ -0,0 +1,107 @@
|
|||
# This pipeline produces a SNAPSHOT build for each of the sub modules in
|
||||
# the core library, and publishes them to ossrh.
|
||||
trigger:
|
||||
- master
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
dstu2:
|
||||
module: "org.hl7.fhir.dstu2"
|
||||
dstu3:
|
||||
module: "org.hl7.fhir.dstu3"
|
||||
dstu2016may:
|
||||
module: "org.hl7.fhir.dstu2016may"
|
||||
r4:
|
||||
module: "org.hl7.fhir.r4"
|
||||
r5:
|
||||
module: "org.hl7.fhir.r5"
|
||||
validator:
|
||||
module: "org.hl7.fhir.validation"
|
||||
maxParallel: 3
|
||||
|
||||
pool:
|
||||
vmImage: "ubuntu-16.04"
|
||||
|
||||
variables:
|
||||
currentModule: $(module)
|
||||
|
||||
steps:
|
||||
# Debugging output to identify current module.
|
||||
- bash: echo Publishing SNAPSHOT for $(module)
|
||||
|
||||
# Signing, for now, occurs for all builds, SNAPSHOT or release. So 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>ossrh</id>
|
||||
<username>$(SONATYPE_USER)</username>
|
||||
<password>$(SONATYPE_PASS)</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>sonatype-nexus-snapshots</id>
|
||||
<username>$(SONATYPE_USER)</username>
|
||||
<password>$(SONATYPE_PASS)</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>sonatype-nexus-staging</id>
|
||||
<username>$(SONATYPE_USER)</username>
|
||||
<password>$(SONATYPE_PASS)</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>$(PGP_KEYNAME)</id>
|
||||
<passphrase>$(PGP_PASSPHRASE)</passphrase>
|
||||
</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'
|
||||
condition: and(eq(variables.currentImage, 'ubuntu-16.04'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
||||
|
||||
# Deploy the SNAPSHOT artifact to sonatype nexus.
|
||||
# This is done for the master branch merges only.
|
||||
- task: Maven@3
|
||||
displayName: 'Deploy $(version) to Sonatype staging'
|
||||
condition: and(eq(variables.currentImage, 'ubuntu-16.04'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
||||
inputs:
|
||||
mavenPomFile: '$(System.DefaultWorkingDirectory)/$(module)/pom.xml'
|
||||
goals: deploy
|
||||
options: '--settings $(System.DefaultWorkingDirectory)/settings.xml '
|
||||
publishJUnitResults: false
|
Loading…
Reference in New Issue