From e5e5df5daaeb5b72fa8562822ac614cd731ee97a Mon Sep 17 00:00:00 2001 From: yusufkaratoprak Date: Sat, 1 May 2021 00:19:50 +0300 Subject: [PATCH] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..3e52e35 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,71 @@ +# 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: '1ae4ab3c-b39a-4860-b6dc-683cc524d1e4' + 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 + timeoutInMinutes: 60 # how long to run the job before automatically cancelling + cancelTimeoutInMinutes: 30 # how much time to give 'run always even if cancelled tasks' before stopping them + pool: + vmImage: $(vmImageName) + environment: 'voloeventhub.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) +