# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java
trigger:
- master
pool:
  name: azureselfhosted
variables:
  dockerRegistryServiceConnection: 'docker-registry-olympus'
  imageName: 'apollo-fe'  # Replace with your Docker image name
  shortCommitSha: ''  # Initialize variable for short commit SHA
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-7)"
  displayName: 'Set Short Commit SHA'
- script: |
    echo "Building the first repository..."
    ls -lrth
  displayName: 'List olympus-common'

- script: |
    echo "Listing the docker images..."
    docker images
  displayName: 'List docker images1'
- task: Docker@2
  displayName: Build
  inputs:
    command: build
    containerRegistry: $(dockerRegistryServiceConnection)
    repository: '$(imageName)'
    tags: '$(shortCommitSha)'
    Dockerfile: 'Dockerfile'
    arguments: '--build-arg VITE_BACKEND_URL=http://olympus-api-gateway-aks.olympusai.live/apollo'

- task: Docker@2
  displayName: Push
  inputs:
    command: push
    containerRegistry: $(dockerRegistryServiceConnection)
    repository: '$(imageName)'
    tags: '$(shortCommitSha)'

- script: |
    echo "Listing the docker images..."
    docker images
  displayName: 'List docker images'
- script: |
    echo "Updating imageName in dpeloyment.yaml"
    echo "Before Substitution"
    cat apollo-fe-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-fe-deployment.yaml
    echo "After Substitution"
    cat apollo-fe-deployment.yaml
  displayName: 'Update ImageName in YAML file'
- script: |
    echo "deployment using kubectl"
    kubectl apply -f apollo-fe-deployment.yaml
  displayName: 'deployment using kubectl'
- script: |
    echo "remove the docker images..."
    docker rmi $(docker images -q)
  displayName: 'remove docker images'