#!/usr/bin/env groovy

def boardName = "enterprise"
def packages = [
    [packageName: 'linux-imx', script: 'linux_imx'],
]

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