#!/usr/bin/env groovy

def packages = [
    [packageName: 'mendel-minimal', script: 'mendel_minimal'],
    [packageName: 'base-files', script: 'base_files'],
    [packageName: 'edgetpu', script: 'edgetpu'],
    [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")
            }
        }
    }
}
