使用Job DSL插件,我正在尝试使种子作业在Jenkins文件夹中相对于种子作业的位置生成新作业。因此,如果种子作业位于/my-project
文件夹中,并且创建my-job
,我还希望my-job
中也可以创建/my-project
。
目标是在没有的情况下执行此操作要求设置种子作业的人记住在构建步骤中手动设置上下文。相反,种子作业本身的脚本应指定位置。
方法1
像这样编写种子作业:
job("my-job") {
}
在Jenkins项目的根目录中创建my job
。那根本不是我想要的。
方法2
修改种子作业以包含路径
job("/my-project/my-job") {
}
在所需的文件夹中创建my job
,但它不可重复使用。如果有人想在另一个文件夹中创建my job
的第二个实例,他们必须首先编辑种子作业的脚本文件。
方法3
lookupStrategy method看起来很有希望,但如果种子工作创造了另一个种子工作,那么它似乎才有用。所以,如果我修改种子作业看起来像这样:
job("my-job") {
steps {
dsl {
text("job('sub-job')")
lookupStrategy('SEED_JOB')
}
}
}
然后仍在根文件夹中创建my-job
,但至少会sub-job
相对于my-job
创建。{/ p>
方法4
JOB_NAME环境变量包含文件夹路径。通过执行一些字符串操作然后使用Attempt 2中的方法可以获得所需的效果,但这似乎有点不优雅。
是否有一些机制已经烘焙,允许为当前正在执行的作业设置lookupStrategy
?