Update azure-pipelines.yml for Azure Pipelines

This commit is contained in:
VladVascan 2019-05-30 14:27:44 +01:00
parent 2c4d3daf0b
commit 9d27619db6

View file

@ -1,16 +1,84 @@
# 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:
- master
- releases/*
resources:
- repo: self
# All tasks on Linux
variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: '{{ containerRegistryConnection.Id }}'
imageRepository: '{{#toAlphaNumericString imageRepository 50}}{{/toAlphaNumericString}}'
containerRegistry: '{{ containerRegistryConnection.Authorization.Parameters.loginServer }}'
dockerfilePath: '**/Dockerfile'
tag: '$(Build.BuildId)'
# Kubernetes Namespace
k8sNamespace: '{{ k8sResource.Namespace }}'
imagePullSecret: '{{#toAlphaNumericString containerRegistryConnection.Name 50}}{{/toAlphaNumericString}}{{#shortGuid}}{{/shortGuid}}-auth'
# 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)
- task: PublishPipelineArtifact@0
inputs:
artifactName: 'manifests'
targetPath: 'manifests'
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy
pool:
vmImage: $(vmImageName)
environment: '{{ k8sResource.EnvironmentReference.Name }}.{{ k8sResource.Name }}'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@0
displayName: Create imagePullSecret
inputs:
action: createSecret
secretName: $(imagePullSecret)
namespace: $(k8sNamespace)
dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: |
$(System.ArtifactsDirectory)/manifests/deployment.yml
$(System.ArtifactsDirectory)/manifests/service.yml
imagePullSecrets: |
$(imagePullSecret)
containers: |
$(containerRegistry)/$(imageRepository):$(tag)
- job: build_all_linux
displayName: Build all tasks (Linux)
condition: and(succeeded(), not(variables.task), eq(variables.os, 'Linux'))
pool:
vmImage: ubuntu-16.04
steps:
- template: ci/build-all-steps.yml
parameters:
os: Linux