image: appirio/dx:latest

pipelines:
  branches:
    feature/*:
      - step:
          name: sonarqube_scan
          script:
            - sonar-scanner-ee -Dsonar.login=$SONAR_LOGIN -Dsonar.branch.name=$BITBUCKET_BRANCH -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300
      - step:
          name: validate_against_SIT
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --checkonly --targetalias SIT
    SIT:
      - step:
          name: sonarqube_scan
          script:
            - sonar-scanner-ee -Dsonar.login=$SONAR_LOGIN -Dsonar.branch.name=$BITBUCKET_BRANCH -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300
      - step:
          name: deploy_to_SIT
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --targetalias SIT
      - step:
          name: validate_against_UAT
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --checkonly --targetalias UAT
    master:
      - step:
          name: sonarqube_scan
          script:
            - sonar-scanner-ee -Dsonar.login=$SONAR_LOGIN -Dsonar.branch.name=$BITBUCKET_BRANCH -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300
      - step:
          name: deploy_to_UAT
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --targetalias UAT
      - step:
          name: validate_against_PROD
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --checkonly --targetalias PROD

  tags:
    v*:
      - step:
          name: prepare_for_deployment
          script:
            - echo 'When ready, you can now initiate the production deployment.'
      - step:
          name: deploy_to_PROD
          trigger: manual
          script:
            - adx metadata:unique --sourcepath force-app/main/default,force-app/sample/metadata
            - adx deploy:source --sourcepath force-app/main/default,force-app/sample/metadata --testdiff --targetalias PROD
