Guest User

Untitled

a guest
Aug 1st, 2023
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 3.56 KB | None | 0 0
  1. # Docker
  2. # Build and push an image to Azure Container Registry
  3. # https://docs.microsoft.com/azure/devops/pipelines/languages/docker
  4.  
  5. trigger:
  6. - master
  7.  
  8. resources:
  9. - repo: self
  10.  
  11. variables:
  12.  # Container registry service connection established during pipeline creation
  13.   imageRepository: 'web-ecorp'
  14.   containerRegistry: 'project'
  15.   dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
  16.   devManifestPath: '$(Build.SourcesDirectory)/deployment.yaml'
  17.   prodManifestPath: '$(Build.SourcesDirectory)/deployment-prod.yaml'
  18.   videoManifestPath: '$(Build.SourcesDirectory)/deployment-video.yaml'
  19.   tag: '$(Build.BuildId)'
  20.  
  21.   # Agent VM image name
  22.   vmImageName: 'ubuntu-latest'
  23.  
  24. stages:
  25. - stage: Build
  26.   displayName: Build and push stage
  27.   jobs:
  28.   - job: Build
  29.     displayName: Build
  30.     pool:
  31.       vmImage: $(vmImageName)
  32.     steps:
  33.     - task: DockerCompose@0
  34.       displayName: Build docker image
  35.       inputs:
  36.         containerregistrytype: 'Container Registry'
  37.         dockerRegistryEndpoint: 'project'
  38.         dockerComposeFile: docker-compose.yml
  39.         additionalImageTags: |
  40.          $(tag)
  41.         action: 'Build services'
  42.         includeSourceTags: true
  43.     - task: DockerCompose@0
  44.       displayName: Push docker image
  45.       inputs:
  46.         containerregistrytype: 'Container Registry'
  47.         dockerRegistryEndpoint: 'project'
  48.         dockerComposeFile: 'docker-compose.yml'
  49.         additionalImageTags: |
  50.          $(tag)
  51.         action: 'Push services'
  52.         includeSourceTags: true
  53.  
  54. - stage: ReleaseDEV
  55.   dependsOn: Build
  56.   displayName: Release Dev
  57.   pool:
  58.     vmImage: $(vmImageName)
  59.   jobs:
  60.   - deployment: Dev
  61.     environment: ctf-web-ecorp-dev
  62.     strategy:
  63.       runOnce:
  64.         deploy:
  65.           steps:
  66.           - checkout: self
  67.           - task: KubernetesManifest@0
  68.             inputs:
  69.               action: 'deploy'
  70.               kubernetesServiceConnection: 'ctf-cluster'
  71.               namespace: 'ctf'
  72.               manifests: $(devManifestPath)
  73.               containers: |
  74.                someurl/project/web/ecorp/postgres:$(tag)
  75.                 someurl/project/web/ecorp/bot:$(tag)
  76.                 someurl/project/web/ecorp/web:$(tag)
  77.  
  78. - stage: ReleaseVIDEO
  79.   dependsOn: Build
  80.   displayName: Release Video
  81.   pool:
  82.     vmImage: $(vmImageName)
  83.   jobs:
  84.   - deployment: Video
  85.     environment: ctf-web-ecorp-video
  86.     strategy:
  87.       runOnce:
  88.         deploy:
  89.           steps:
  90.           - checkout: self
  91.           - task: KubernetesManifest@0
  92.             inputs:
  93.               action: 'deploy'
  94.               kubernetesServiceConnection: 'ctf-cluster'
  95.               namespace: 'ctf'
  96.               manifests: $(videoManifestPath)
  97.               containers: |
  98.                someurl/project/web/ecorp/postgres:$(tag)
  99.                 someurl/project/web/ecorp/bot:$(tag)
  100.                 someurl/project/web/ecorp/web:$(tag)
  101.  
  102. - stage: ReleasePROD
  103.   dependsOn: ReleaseDEV
  104.   displayName: Release Prod
  105.   pool:
  106.     vmImage: $(vmImageName)
  107.   jobs:
  108.   - deployment: Prod
  109.     environment: ctf-web-ecorp-prod
  110.     strategy:
  111.       runOnce:
  112.         deploy:
  113.           steps:
  114.           - checkout: self
  115.           - task: KubernetesManifest@0
  116.             inputs:
  117.               action: 'deploy'
  118.               kubernetesServiceConnection: 'ctf-cluster'
  119.               namespace: 'ctf'
  120.               manifests: $(prodManifestPath)
  121.               containers: |
  122.                someurl/project/web/ecorp/postgres:$(tag)
  123.                 someurl/project/web/ecorp/bot:$(tag)
  124.                 someurl/project/web/ecorp/web:$(tag)
  125.  
Advertisement
Add Comment
Please, Sign In to add comment