#!/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-wlan', script: 'excelsior_wlan'],
    [packageName: 'glmark2', script: 'glmark2'],
    [packageName: 'gst-plugins-bad1.0', script: 'gst_plugins_bad1.0'],
    [packageName: 'gst-plugins-base1.0', script: 'gst_plugins_base1.0'],
    [packageName: 'gst-plugins-good1.0', script: 'gst_plugins_good1.0'],
    [packageName: 'gst-shark', script: 'gst_shark'],
    [packageName: 'gstreamer1.0', script: 'gstreamer1.0'],
    [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: '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")
            }
        }
    }
}
