112 lines
3.6 KiB
YAML
112 lines
3.6 KiB
YAML
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 & 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..."
|
|
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 ${{variables.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()
|