-
David Diederich authoredDavid Diederich authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.yml 2.72 KiB
trigger: [ 'master' ]
pool:
name: Hosted Ubuntu 1604
demands: maven
variables:
osProjectName: notification
dockerDir: provider/$(osProjectName)-gcp/docker
imageName: os-$(osProjectName)-app
sourceImageName: gcr.io/opendes/$(imageName)
tag: $(Build.BuildNumber)
steps:
- task: DownloadSecureFile@1
name: gcrKey
inputs:
secureFile: cicd-push-image-to-cr-keyfile.json
- task: Maven@3
displayName: 'Build and test'
inputs:
jdkVersionOption: 1.8
jdkArchitectureOption: 'x64'
mavenPomFile: 'pom.xml'
goals: "clean install"
options: '--settings configuration/settings.xml -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN)'
testResultsFiles: '**/TEST-*.xml'
- bash: |
#!/bin/bash
set -e
pushd $(dockerDir)
docker-compose build $(imageName)
echo 'Image done.'
cat $(gcrKey.secureFilePath) | docker login -u _json_key --password-stdin https://gcr.io
echo 'Login done.'
docker tag $(sourceImageName) $(sourceImageName):$(tag)
docker push $(sourceImageName):$(tag)
popd
displayName: 'Docker image build and push'
- bash: |
sed -i -e "s|{{definitionName}}|$(build.DefinitionName)|g" deploy.sh
sed -i -e "s|{{sourceBranchName}}|$(build.SourceBranchName)|g" deploy.sh
sed -i -e "s|{{buildNumber}}|$(build.BuildNumber)|g" deploy.sh
workingDirectory: provider/notification-gcp/scripts
displayName: 'Gomplate GCP deploy script'
- task: ArchiveFiles@2
displayName: 'Archive integration-tests'
inputs:
rootFolderOrFile: 'testing'
archiveFile: 'provider/notification-gcp/target/integration-tests.zip'
includeRootFolder: false
- task: CopyFiles@2
displayName: 'Copy deployable jar and integration tests zip'
inputs:
sourceFolder: 'provider/notification-gcp/target'
contents: |
*spring-boot.jar
integration-tests.zip
targetFolder: '$(build.artifactstagingdirectory)/deploy'
- task: CopyFiles@2