# delphi-appreciationengine
resource "jenkins_folder" "delphi_appreciationengine" {
  name   = "delphi-appreciationengine"
  folder = data.jenkins_folder.delphi_monorepos.id
}

resource "jenkins_folder" "delphi_appreciationengine_lambdas" {
  name   = "lambdas"
  folder = jenkins_folder.delphi_appreciationengine.id
}

resource "jenkins_folder" "delphi_appreciationengine_tasks" {
  name   = "tasks"
  folder = jenkins_folder.delphi_appreciationengine.id
}

resource "jenkins_folder" "delphi_appreciationengine_stepfunctions" {
  name   = "stepfunctions"
  folder = jenkins_folder.delphi_appreciationengine.id
}

locals {
  delphi_appreciationengine_git_name     = "delphi-appreciationengine"
  delphi_appreciationengine_git_http_url = "https://github.com/theorchard/delphi-appreciationengine.git"
  delphi_appreciationengine_git_ssh_url  = "git@github.com:theorchard/delphi-appreciationengine.git"
  delphi_appreciationengine_jobs = {
    slz_appreciationengine_scrapper = {
      name             = "slz_appreciationengine_scrapper"
      folder           = jenkins_folder.delphi_appreciationengine_tasks.id
      disabled         = false
      jenkinsfile_path = "task/slz_appreciationengine_scrapper/Jenkinsfile"
    }
    slz_appreciationengine_prepare_configuration = {
      name             = "slz_appreciationengine_prepare_configuration"
      folder           = jenkins_folder.delphi_appreciationengine_lambdas.id
      disabled         = false
      jenkinsfile_path = "lambda/slz_appreciationengine_prepare_configuration/Jenkinsfile"
    }
    slz_appreciationengine_availability_check = {
      name             = "slz_appreciationengine_availability_check"
      folder           = jenkins_folder.delphi_appreciationengine_lambdas.id
      disabled         = false
      jenkinsfile_path = "lambda/slz_appreciationengine_availability_check/Jenkinsfile"
    }
    slz_appreciationengine_clean_up = {
      name             = "slz_appreciationengine_clean_up"
      folder           = jenkins_folder.delphi_appreciationengine_lambdas.id
      disabled         = false
      jenkinsfile_path = "lambda/slz_appreciationengine_clean_up/Jenkinsfile"
    }
    slz_appreciationengine_step_function = {
      name             = "slz_appreciationengine_step_function"
      folder           = jenkins_folder.delphi_appreciationengine_stepfunctions.id
      disabled         = false
      jenkinsfile_path = "slz_appreciationengine_step_function/Jenkinsfile"
    }
    appreciationengine-pipeline-manager = {
      name              = "appreciationengine-pipeline-manager"
      folder            = jenkins_folder.delphi_appreciationengine.id
      branches_to_build = ["develop", "release", "hotfix"]
      jenkins_job_type  = "manager"
      disabled          = false
      jenkinsfile_path  = "Jenkinsfile"
    }
  }
}

module "delphi_appreciationengine" {
  for_each = local.delphi_appreciationengine_jobs

  source = "../../modules/jenkins/multibranch-pipeline-delphi-monorepos"

  disabled = each.value["disabled"]
  folder   = each.value["folder"]

  github_repository_name              = local.delphi_appreciationengine_git_name
  github_repository_http_url          = local.delphi_appreciationengine_git_http_url
  github_repository_ssh_url           = local.delphi_appreciationengine_git_ssh_url
  github_repository_branches_to_build = lookup(each.value, "branches_to_build", [])
  jenkinsfile_path                    = each.value["jenkinsfile_path"]
  jenkins_job_type                    = lookup(each.value, "jenkins_job_type", "project")
  jenkins_job_name                    = each.value["name"]

  github_ssh_credentials_id = "theorchard-ci-ssh-key"
  github_credentials_id     = "orchardci-user-token"
  github_repository_owner   = "theorchard"
}
