#!/usr/bin/env groovy

def boardName = "excelsior"
def packages = [
    [packageName: 'a71ch-crypto-support', script: 'a71ch_crypto_support'],
    [packageName: 'edgetpudemo', script: 'edgetpudemo'],
    [packageName: 'edgetpuvision', script: 'edgetpuvision'],
    [packageName: 'excelsior-bluetooth', script: 'excelsior_bluetooth'],
    [packageName: 'excelsior-bootloader', script: 'excelsior_bootloader'],
    [packageName: 'excelsior-connectivity-fw', script: 'excelsior_connectivity_fw'],
    [packageName: 'excelsior-img-fw', script: 'excelsior_img_fw'],
    [packageName: 'excelsior-tools', script: 'excelsior_tools'],
    [packageName: 'excelsior-vpu-prebuilts', script: 'excelsior_vpu_prebuilts'],
    [packageName: 'excelsior-wlan', script: 'excelsior_wlan'],
    [packageName: 'libmdp-prot', script: 'libmdp_prot'],
    [packageName: 'linux-mtk', script: 'linux_mtk'],
    [packageName: 'lk-bootloader', script: 'lk_bootloader'],
    [packageName: 'mdpd', script: 'mdpd'],
    [packageName: 'meta-excelsior', script: 'meta_excelsior'],
    [packageName: 'mtk-board-audio', script: 'mtk_board_audio'],
    [packageName: 'mtk-gst-plugins-bad', script: 'mtk_gst_plugins_bad'],
    [packageName: 'mtk-gst-plugins-base', script: 'mtk_gst_plugins_base'],
    [packageName: 'mtk-gst-plugins-good', script: 'mtk_gst_plugins_good'],
    [packageName: 'mtk-gstreamer', script: 'mtk_gstreamer'],
    [packageName: 'optee-os', script: 'optee_os'],
    [packageName: 'tf-a', script: 'tf_a'],
    [packageName: 'u-boot', script: 'u_boot'],
    [packageName: 'weston-mtk', script: 'weston_mtk'],
]

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

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

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