詹金斯在另外的工作中提升而不是建立工作

时间:2018-05-25 21:34:06

标签: jenkins groovy continuous-integration jenkins-plugins jenkins-pipeline

我有一个jenkins管道工作,它自己引导。这里的想法是自我测试更改,包括对存储在git中的jenkins管道groovy脚本的更改。

我想知道如何在单独的作业中进行引导而不是构建作业。例如,如果我有一个名为" build_linux" 的作业,目前Jenkins将创建一个" workspace / build_linux" 文件夹,那里面的一切都会在那里引导和构建。

这里的问题是我的build_repository.git非常大,我不想在bootstrap阶段和构建阶段两次检查它。但是,如果我不是在两个阶段都检查它们,那么git(实际上我将使用谷歌和回购脚本中的两个git存储库同步清单)会抱怨#39;那里的代码不应该是,并且要么失败要么会尝试清理它(这是低效的)。

理想情况下,我只需要"工作空间/ bootstrap /" " workspace / linux_build /" 工作文件夹。

例如,我的管道如下所示:

bootstrap.gvy:

--> **entry point from my jenkins config**

stage('Bootstrap') {
    node("$BOOTSTRAP_NODE") {
        git checkout bootstrap_repository.git
        git checkout build_repository.git // I don't want to do this here
        pipeline = load "build/build.gvy"
    }

    pipeline.main(env.JOB_NAME) // which in this case is "build_linux"
}

建立/ build.gvy:

int main(String jobName) {
    switch (jobname) {
        case "build_linux":
        doBuildLiunx()
        break
    }
}

def doBuildLinux() {
    stage("Build") {
        node("$BUILD_NODE") {
             git checkout bootstrap_repository.git // I don't want to do this here
             git checkout build_repository.git
        }
    }
}

有关如何完成此操作的任何建议?也许我应该使用不同的工作空间进行自举?

由于

0 个答案:

没有答案