#!/usr/bin/env groovy

def projects = [
  "Devops/Terraform/security/dev-apollo",
  "Devops/Terraform/security/dev-artistapp",
  "Devops/Terraform/security/dev-core",
  "Devops/Terraform/security/dev-databricks",
  "Devops/Terraform/security/dev-datascience",
  "Devops/Terraform/security/dev-delphi",
  "Devops/Terraform/security/dev-infra",
  "Devops/Terraform/security/dev-mct",
  "Devops/Terraform/security/dev-prodhub",
  "Devops/Terraform/security/dev-smu",
  "Devops/Terraform/security/dev-whitelist",
  "Devops/Terraform/security/prod-apollo",
  "Devops/Terraform/security/prod-artistapp",
  "Devops/Terraform/security/prod-core",
  "Devops/Terraform/security/prod-databricks",
  "Devops/Terraform/security/prod-delphi",
  "Devops/Terraform/security/prod-infra",
  "Devops/Terraform/security/prod-mct",
  "Devops/Terraform/security/prod-smu",
  "Devops/Terraform/security/prod-whitelist",
  "Devops/Terraform/security/prod-whitelist-legacy"
]

pipeline {
  agent {
    label 'linux-agents'
  }

  stages {
    stage('Upload') {
      when {
        branch 'master'
      }
      steps {
        sh "make upload"
      }
    }

    stage('Update WAF rules') {
      when {
        branch 'master'
      }
      steps {
        build (
          job: 'Devops/Terraform/terraformPipelineManager/master/',
          parameters: [
            string(name: 'PROJECT_CHOICE', value: 'Select manually'),
            extendedChoice(name: 'PROJECTS', value: projects.join(',')),
            string(name: 'TERRAFORM_APPLY', value: 'yes'),
            string(name: 'SKIP_APPROVAL', value: 'true')
          ]
        )
      }
    }
  }
}
