trigger: - master resources: repositories: - repository: olympus-common # Alias for the first repository type: git name: Olympus/olympus-common # Project and repository name ref: master variables: dockerRegistryServiceConnection: 'docker-registry-olympus' imageName: 'apollo' shortCommitSha: '' envName: 'aks-olympus' stages: - stage: Build displayName: Build stage jobs: - job: Build displayName: Build pool: name: azureselfhosted steps: - checkout: self - checkout: olympus-common - script: | echo "##vso[task.setvariable variable=shortCommitSha]$(echo $(Build.SourceVersion) | cut -c1-8)" displayName: 'Set Short Commit SHA' - script: | echo "Building the first repository..." ls -lrth displayName: 'List olympus-common' - task: Maven@3 inputs: mavenPomFile: 'olympus-common/pom.xml' goals: 'install' displayName: 'Build olympus-common' - task: Maven@3 inputs: mavenPomFile: 'apollo/pom.xml' goals: 'install -DskipTests' displayName: 'Build apollo' - script: | echo "Listing the docker images..." docker images displayName: 'List docker images1' - task: Docker@2 inputs: command: 'buildAndPush' containerRegistry: $(dockerRegistryServiceConnection) repository: '$(imageName)' tags: '$(shortCommitSha)' Dockerfile: 'apollo/Dockerfile' - script: | echo "Listing the docker images..." docker images displayName: 'List docker images' - stage: Deploy displayName: Deploy stage jobs: - deployment: Deploy displayName: Deploy to $(envName) condition: succeeded() pool: name: azureselfhosted environment: $(envName) strategy: runOnce: deploy: steps: - checkout: self - script: | echo "##vso[task.setvariable variable=shortCommitSha]$(echo $(Build.SourceVersion) | cut -c1-8)" displayName: 'Set Short Commit SHA' - script: | echo $(shortCommitSha) echo "Updating imageName in deployment.yaml" echo "Before Substitution" cat apollo-deployment.yaml echo "###############################################" echo "current shell: $SHELL" echo "imagename bracket : $(imageName)" echo "###############################################" sed -i "s|image: olympusreg.azurecr.io/$(imageName):.*|image: olympusreg.azurecr.io/$(imageName):$(shortCommitSha)|" apollo-deployment.yaml echo "After Substitution" cat apollo-deployment.yaml displayName: 'Update ImageName in YAML file' - script: | echo "deployment using kubectl" kubectl apply -f apollo-deployment.yaml displayName: 'Deployment using kubectl' - script: | echo "Removing Docker images to clean up..." docker rmi $(docker images -q) displayName: 'Clean up Docker Images' continueOnError: true condition: always()