# 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' # Replace with your Docker image name shortCommitSha: '' # Initialize variable for short commit SHA resources: repositories: - repository: olympus-common # Alias for the first repository type: git name: Olympus/olympus-common # Project and repository name ref: master steps: - checkout: self # Check out the pipeline repository (optional) - checkout: olympus-common # Check out the first repository # 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' - task: Maven@3 inputs: mavenPomFile: 'olympus-common/pom.xml' goals: 'install' # options: '-s $(mvnSettings.secureFilePath)' #mavenAuthenticateFeed: true #publishJUnitResults: true #testResultsFiles: '**/TEST-*.xml' #javaHomeOption: 'JDKVersion' #jdkVersionOption: '1.21' #mavenVersionOption: 'Default' displayName: 'Build olympus-common' - task: Maven@3 inputs: mavenPomFile: 'apollo/pom.xml' goals: 'install -DskipTests' # options: '-s $(mvnSettings.secureFilePath)' #mavenAuthenticateFeed: true #publishJUnitResults: true #testResultsFiles: '**/TEST-*.xml' #javaHomeOption: 'JDKVersion' #jdkVersionOption: '1.21' #mavenVersionOption: 'Default' 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' - script: | echo "Updating imageName in dpeloyment.yaml" echo "Before Substitution" cat apollo/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/apollo-deployment.yaml echo "After Substitution" cat apollo/apollo-deployment.yaml displayName: 'Update ImageName in YAML file' - script: | echo "deployment using kubectl" kubectl apply -f apollo/apollo-deployment.yaml displayName: 'deployment using kubectl' - script: | echo "remove the docker images..." docker rmi $(docker images -q) displayName: 'remove docker images'