diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..e1d0674 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,69 @@ +# 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 + + +variables: + + # Container registry service connection established during pipeline creation + dockerRegistryServiceConnection: 'ba41e703-3335-4f8b-aacf-6da11b9c9b43' + imageRepository: 'volosofteventhub' + containerRegistry: 'voloeventhub.azurecr.io' + dockerfilePath: '**/Dockerfile.EventHub.Web' + tag: '$(Build.BuildNumber)' + + # Agent VM image name + vmImageName: 'ubuntu-latest' + + +stages: +- stage: Build + displayName: Build stage + jobs: + - job: Build + displayName: Build + pool: + vmImage: $(vmImageName) + steps: + - task: Docker@2 + displayName: Build and push an image to container registry + inputs: + command: buildAndPush + repository: $(imageRepository) + dockerfile: $(dockerfilePath) + containerRegistry: $(dockerRegistryServiceConnection) + tags: | + $(tag) + + - publish: manifests + artifact: manifests + +- stage: Deploy + displayName: Deploy stage + dependsOn: Build + + jobs: + - deployment: Deploy + displayName: Deploy-EventHub.Web + pool: + vmImage: $(vmImageName) + environment: 'volosofteventhub-3580.default' + strategy: + runOnce: + deploy: + steps: + + + - task: KubernetesManifest@0 + displayName: Deploy to Kubernetes cluster + inputs: + action: deploy + manifests: | + $(Pipeline.Workspace)/manifests/deployment.eventhub.web.yml + $(Pipeline.Workspace)/manifests/service.eventhub.web.yml + containers: | + $(containerRegistry)/$(imageRepository):$(tag) +