diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..67f8736 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,87 @@ +# 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: 'hermione' # 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-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' + # 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: 'hermione/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 hermione' +- 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: 'hermione/Dockerfile' +- script: | + echo "Listing the docker images..." + docker images + displayName: 'List docker images' +- script: | + echo "Updating imageName in dpeloyment.yaml" + echo "Before Substitution" + cat hermione/hermione-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)|" hermione/hermione-deployment.yaml + echo "After Substitution" + cat hermione/hermione-deployment.yaml + displayName: 'Update ImageName in YAML file' +- script: | + echo "deployment using kubectl" + kubectl apply -f hermione/hermione-deployment.yaml + displayName: 'deployment using kubectl' +- script: | + echo "remove the docker images..." + docker rmi $(docker images -q) + displayName: 'remove docker images' \ No newline at end of file