我有一个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
}
}
}
有关如何完成此操作的任何建议?也许我应该使用不同的工作空间进行自举?
由于