#!/usr/bin/env groovy

def boards = [
    "enterprise",
    "excelsior"
]

boards.each {
    def boardName = it

    pipelineJob("image.${boardName}") {
        parameters {
            stringParam('boardName', boardName, 'Board to build an image for')
            stringParam('releaseName', 'unstable', 'The release name to build an image from')
        }
        definition {
            cpsScm {
                scm {
                    git {
                        remote {
                            url('https://coral.googlesource.com/gke-jenkins')
                        }

                        branches('*/master')
                    }
                }

                scriptPath("cicd/pipelines/core/images.jenkins")
            }
        }
    }
}
