Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Docker
- # Build and push an image to Azure Container Registry
- # https://docs.microsoft.com/azure/devops/pipelines/languages/docker
- trigger:
- - master
- resources:
- - repo: self
- variables:
- # Container registry service connection established during pipeline creation
- imageRepository: 'web-ecorp'
- containerRegistry: 'project'
- dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
- devManifestPath: '$(Build.SourcesDirectory)/deployment.yaml'
- prodManifestPath: '$(Build.SourcesDirectory)/deployment-prod.yaml'
- videoManifestPath: '$(Build.SourcesDirectory)/deployment-video.yaml'
- tag: '$(Build.BuildId)'
- # Agent VM image name
- vmImageName: 'ubuntu-latest'
- stages:
- - stage: Build
- displayName: Build and push stage
- jobs:
- - job: Build
- displayName: Build
- pool:
- vmImage: $(vmImageName)
- steps:
- - task: DockerCompose@0
- displayName: Build docker image
- inputs:
- containerregistrytype: 'Container Registry'
- dockerRegistryEndpoint: 'project'
- dockerComposeFile: docker-compose.yml
- additionalImageTags: |
- $(tag)
- action: 'Build services'
- includeSourceTags: true
- - task: DockerCompose@0
- displayName: Push docker image
- inputs:
- containerregistrytype: 'Container Registry'
- dockerRegistryEndpoint: 'project'
- dockerComposeFile: 'docker-compose.yml'
- additionalImageTags: |
- $(tag)
- action: 'Push services'
- includeSourceTags: true
- - stage: ReleaseDEV
- dependsOn: Build
- displayName: Release Dev
- pool:
- vmImage: $(vmImageName)
- jobs:
- - deployment: Dev
- environment: ctf-web-ecorp-dev
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self
- - task: KubernetesManifest@0
- inputs:
- action: 'deploy'
- kubernetesServiceConnection: 'ctf-cluster'
- namespace: 'ctf'
- manifests: $(devManifestPath)
- containers: |
- someurl/project/web/ecorp/postgres:$(tag)
- someurl/project/web/ecorp/bot:$(tag)
- someurl/project/web/ecorp/web:$(tag)
- - stage: ReleaseVIDEO
- dependsOn: Build
- displayName: Release Video
- pool:
- vmImage: $(vmImageName)
- jobs:
- - deployment: Video
- environment: ctf-web-ecorp-video
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self
- - task: KubernetesManifest@0
- inputs:
- action: 'deploy'
- kubernetesServiceConnection: 'ctf-cluster'
- namespace: 'ctf'
- manifests: $(videoManifestPath)
- containers: |
- someurl/project/web/ecorp/postgres:$(tag)
- someurl/project/web/ecorp/bot:$(tag)
- someurl/project/web/ecorp/web:$(tag)
- - stage: ReleasePROD
- dependsOn: ReleaseDEV
- displayName: Release Prod
- pool:
- vmImage: $(vmImageName)
- jobs:
- - deployment: Prod
- environment: ctf-web-ecorp-prod
- strategy:
- runOnce:
- deploy:
- steps:
- - checkout: self
- - task: KubernetesManifest@0
- inputs:
- action: 'deploy'
- kubernetesServiceConnection: 'ctf-cluster'
- namespace: 'ctf'
- manifests: $(prodManifestPath)
- containers: |
- someurl/project/web/ecorp/postgres:$(tag)
- someurl/project/web/ecorp/bot:$(tag)
- someurl/project/web/ecorp/web:$(tag)
Advertisement
Add Comment
Please, Sign In to add comment