diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 0000000..21faf49
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,121 @@
+# Deploy to Azure Kubernetes Service
+# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes Service
+# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
+
+trigger:
+ - main
+
+resources:
+ - repo: self
+
+variables:
+
+ # Container registry service connection established during pipeline creation
+ dockerRegistryServiceConnection: 'ba554595-2da8-4cf6-88c4-a57c75966491'
+ imageRepository: 'multicloudapp'
+ containerRegistry: 'multicloud.azurecr.io'
+ dockerfilePath: '**/Dockerfile'
+ tag: '$(Build.BuildId)'
+ imagePullSecret: 'multicloud2012b828-auth'
+
+ # Agent VM image name
+ vmImageName: 'ubuntu-latest'
+
+ # Name of the new namespace being created to deploy the PR changes.
+ k8sNamespaceForPR: 'review-app-$(System.PullRequest.PullRequestId)'
+
+stages:
+ - stage: Build
+ displayName: Build stage
+ jobs:
+ - job: Build
+ displayName: Build
+ pool:
+ vmImage: $(vmImageName)
+ steps:
+ - task: JavaToolInstaller@0
+ inputs:
+ versionSpec: '17'
+ jdkArchitectureOption: 'x64'
+ jdkSourceOption: 'PreInstalled'
+ - task: Maven@4
+ inputs:
+ mavenPomFile: 'pom.xml'
+ publishJUnitResults: true
+ testResultsFiles: '**/surefire-reports/TEST-*.xml'
+ javaHomeOption: 'JDKVersion'
+ mavenVersionOption: '1.17'
+ mavenAuthenticateFeed: false
+ effectivePomSkip: false
+ sonarQubeRunAnalysis: false
+ - task: Docker@2
+ displayName: Build and push an image to container registry
+ inputs:
+ command: buildAndPush
+ repository: $(imageRepository)
+ dockerfile: $(dockerfilePath)
+ containerRegistry: $(dockerRegistryServiceConnection)
+ tags: |
+ $(tag)
+
+ - upload: manifests
+ artifact: manifests
+ - script: |
+ echo Downloading Liquibase and Oracle JDBC driver
+ wget https://github.com/liquibase/liquibase/releases/download/v4.4.3/liquibase-4.4.3.tar.gz
+ tar -xzf liquibase-4.4.3.tar.gz
+ wget https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc8.jar
+ wget https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
+ sudo apt-get install unzip
+ unzip sqlcl-latest.zip
+ displayName: 'Install Liquibase and Oracle JDBC'
+
+
+ - stage: Deploy
+ displayName: Deploy stage
+ dependsOn: Build
+
+ jobs:
+
+ - deployment: Deploy
+ condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
+ displayName: Deploy
+ pool:
+ vmImage: $(vmImageName)
+ environment: 'paulparkinsonazuredevopsoracledatabase-8684.default'
+ strategy:
+ runOnce:
+ deploy:
+ steps:
+ - task: KubernetesManifest@0
+ displayName: Create imagePullSecret
+ inputs:
+ action: createSecret
+ secretName: $(imagePullSecret)
+ dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
+
+ - script: |
+ yq eval '.spec.template.spec.containers[0].env += [{"name": "AZURE_LOG_LEVEL", "value": "verbose"}, {"name": "AZURE_CLIENT_ID", "value": "$(AZURE_CLIENT_ID)"}, {"name": "AZURE_CLIENT_SECRET", "value": "$(AZURE_CLIENT_SECRET)"}, {"name": "AZURE_TENANT_ID", "value": "$(AZURE_TENANT_ID)"}]' -i $(Pipeline.Workspace)/manifests/deployment.yml
+ displayName: 'Add Environment Variable with yq'
+
+ - task: KubernetesManifest@0
+ displayName: Deploy to Kubernetes cluster
+ inputs:
+ action: deploy
+ manifests: |
+ $(Pipeline.Workspace)/manifests/deployment.yml
+ $(Pipeline.Workspace)/manifests/service.yml
+ imagePullSecrets: |
+ $(imagePullSecret)
+ containers: |
+ $(containerRegistry)/$(imageRepository):$(tag)
+
+ - task: Kubernetes@1
+ displayName: Deploy ServiceMonitor
+ inputs:
+ connectionType: Kubernetes Service Connection
+ kubernetesServiceEndpoint: $(kubernetesServiceConnection)
+ namespace: default
+ command: apply
+ useConfigurationFile: true
+ configuration: $(Pipeline.Workspace)/manifests/servicemonitor.yaml
diff --git a/pom.xml b/pom.xml
index 5553082..cf2bafe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.1.2
+ 3.1.4
oraclemulticloud
@@ -17,6 +17,7 @@
23.3.0.23.09
3.1.2
+ 1.31
17
17