parameters:
  - name: environmentDev
    displayName: Dev environment
    type: boolean
    default: true

  - name: environmentTest
    displayName: Test environment
    type: boolean
    default: false

  - name: environmentStage
    displayName: Stage environment
    type: boolean
    default: false

  - name: environmentBlue
    displayName: Blue environment
    type: boolean
    default: false

  - name: environmentProd
    displayName: Prod environment
    type: boolean
    default: false

variables:
  serviceName: asma-app-advoca
  helmCustomization: 'service.tag=$(Build.SourceBranchName)_$(Build.SourceVersion)'

trigger: none

resources:
  repositories:
  - repository: templates
    type: git
    name: Arbeidoginkludering/asma-infrastructure
    ref: refs/heads/master
  pipelines:
  - pipeline: repo
    source: asma-app-advoca-build
    trigger:
      branches:
        include:
          - '*'

stages:
  - stage: Deploy_Dev
    condition: ${{ parameters.environmentDev }}
    variables:
    - group: common-vg
    - group: dev-vg
    jobs:
    - template: pipelineTemplates/helmDeploy.yaml@templates
      parameters:
        environment: dev
        serviceName: ${{ variables.serviceName }}
        k8sClusterConnection: avans-dev-k8s
        helmCustomization: ${{ variables.helmCustomization }}

  - stage: Deploy_Test
    condition: ${{ parameters.environmentTest }}
    variables:
    - group: common-vg
    - group: test-vg
    jobs:
    - template: pipelineTemplates/helmDeploy.yaml@templates
      parameters:
        environment: test
        serviceName: ${{ variables.serviceName }}
        k8sClusterConnection: avans-dev-k8s
        helmCustomization: ${{ variables.helmCustomization }}

  - stage: Deploy_Stage
    condition: ${{ parameters.environmentStage }}
    variables:
    - group: common-vg
    - group: stage-vg
    jobs:
    - template: pipelineTemplates/helmDeploy.yaml@templates
      parameters:
        environment: stage
        serviceName: ${{ variables.serviceName }}
        k8sClusterConnection: avans-dev-k8s
        allureServiceUser: $(allure-security-user)
        allureServicePass: $(allure-security-pass)
        allureVersion: $(Build.BuildNumber)
        helmCustomization: ${{ variables.helmCustomization }}

  - stage: Deploy_Blue
    condition: ${{ parameters.environmentBlue }}
    variables:
    - group: common-vg
    - group: blue-vg
    jobs:
    - template: pipelineTemplates/helmDeploy.yaml@templates
      parameters:
        environment: blue
        serviceName: ${{ variables.serviceName }}
        k8sClusterConnection: avans-prod-k8s
        helmCustomization: ${{ variables.helmCustomization }}

  - stage: Deploy_Prod
    condition: ${{ parameters.environmentProd }}
    variables:
    - group: common-vg
    - group: prod-vg
    jobs:
    - template: pipelineTemplates/helmDeploy.yaml@templates
      parameters:
        environment: prod
        serviceName: ${{ variables.serviceName }}
        k8sClusterConnection: avans-prod-k8s
        helmCustomization: ${{ variables.helmCustomization }}
