Files
hermione-fe/azure-pipelines.yml
2024-12-06 12:13:42 +00:00

114 lines
3.8 KiB
YAML

trigger:
- master
variables:
dockerRegistryServiceConnection: 'docker-registry-olympus'
imageName: 'hermione-fe' # Replace with your Docker image name
shortCommitSha: '' # Initialize variable for short commit SHA
envName: 'aks-olympus'
azurecontainerRegistry: 'olympusreg.azurecr.io'
resourceName: 'olympus'
VITE_BACKEND_URL: 'http://olympus-api-gateway-aks.olympusai.live/hermione'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: "Build & push to ACR"
pool:
name: azureselfhosted
steps:
- checkout: self # Check out the pipeline repository (optional)
# Extract the short commit SHA
- 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'
- script: |
echo "Listing the docker images..."
docker images
displayName: 'List docker images'
- task: Docker@2
inputs:
command: build
repository: '$(imageName)'
Dockerfile: 'Dockerfile'
containerRegistry: $(dockerRegistryServiceConnection)
tags: '$(shortCommitSha)'
arguments: '--build-arg VITE_BACKEND_URL=$(VITE_BACKEND_URL)'
displayName: 'Build an image for container registry'
- task: Docker@2
inputs:
command: push
containerRegistry: $(dockerRegistryServiceConnection)
repository: '$(imageName)'
tags: '$(shortCommitSha)'
displayName: '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()
- script: |
echo "Listing the docker images..."
docker images
displayName: 'List docker images after removal'
#- upload: manifests
# artifact: manifests
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
condition: succeeded()
displayName: "Deploy to ${{variables.envName}} environment"
pool:
name: azureselfhosted
environment:
name: $(envName).$(resourceName)
resourceType: Kubernetes
strategy:
runOnce:
deploy:
steps:
- checkout: self # Check out the pipeline repository (optional)
- 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-fe-deployment.yaml
containers: |
$(azurecontainerRegistry)/$(imageName):$(shortCommitSha)