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: 'hermione' shortCommitSha: '' envName: 'aks-olympus' azurecontainerRegistry: 'olympusreg.azurecr.io' resourceName: 'olympus' stages: - stage: Build displayName: Build stage jobs: - job: Build displayName: "Build & push to ACR" 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..." pwd ls -lrth displayName: 'list files' - task: Maven@4 inputs: mavenPomFile: 'olympus-common/pom.xml' goals: 'install' displayName: 'Build olympus-common' - task: Maven@4 inputs: mavenPomFile: 'hermione/pom.xml' goals: 'clean install -DskipTests' displayName: 'Build hermione' - script: | echo "Listing the docker images..." docker images displayName: 'list docker images' - task: Docker@2 inputs: command: 'buildAndPush' repository: '$(imageName)' Dockerfile: 'hermione/Dockerfile' containerRegistry: $(dockerRegistryServiceConnection) tags: '$(shortCommitSha)' displayName: 'Build and push an image to container registry' - script: | echo "Listing the docker images..." docker images displayName: 'List docker images' - script: | echo "Removing Docker images to clean up..." docker rmi $(docker images -q) displayName: 'Clean up Docker Images' continueOnError: true condition: always() #- upload: hermione/manifests # artifact: manifests - stage: Deploy displayName: Deploy stage dependsOn: Build jobs: - deployment: Deploy condition: succeeded() displayName: "Deploy to ${{variables.envName}}" pool: name: azureselfhosted environment: name: $(envName).$(resourceName) resourceType: Kubernetes 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 "########################################################################" echo "Short Commit SHA: $(shortCommitSha)" displayName: 'Echo short commit SHA' - task: KubernetesManifest@1 displayName: Deploy to Kubernetes cluster inputs: action: deploy namespace: olympus manifests: | $(Pipeline.Workspace)/manifests/hermione-deployment.yaml containers: | $(azurecontainerRegistry)/$(imageName):$(shortCommitSha)