#!/usr/bin/env groovy

def packages = [
    [packageName: 'mendel-minimal', script: 'mendel_minimal'],
    [packageName: 'mdt-services',   script: 'mdt_services'],
]

packages.each {
    def packageName = it.packageName
    def script = it.script

    pipelineJob("core.${packageName}") {
        definition {
            cpsScm {
                scm {
                    git {
                        remote {
                            url('https://coral.googlesource.com/gke-jenkins')
                        }
                        branches('*/master')
                    }
                }

                scriptPath("cicd/pipelines/core/${script}.jenkins")
            }
        }
    }
}
