#!/usr/bin/env groovy

def packages = [
    [packageName: 'mendel-minimal', script: 'mendel_minimal'],
    [packageName: 'base-files', script: 'base_files'],
    [packageName: 'edgetpuvision', script: 'edgetpuvision'],
    [packageName: 'edgetpudemo', script: 'edgetpudemo'],
    [packageName: 'mdt-services',   script: 'mdt_services'],
    [packageName: 'mendel-distro-info-data', script: 'mendel_distro_info_data'],
    [packageName: 'mendel-keyring', script: 'mendel_keyring'],
    [packageName: 'runonce', script: 'runonce'],
    [packageName: 'usb-gadget', script: 'usb_gadget'],
    [packageName: 'vitalsd', script: 'vitalsd'],
    [packageName: 'meta-mendel', script: 'meta_mendel'],
]

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")
            }
        }
    }
}
