我有一个包含字符串参数字段(称为JOB_NAME)的作业,在此字符串参数中,我将用另一个作业名称填充它。 在同一份工作中,我创建了“触发/调用构建在另一个项目上”,最近,我将只提供$ JOB_NAME,但它无效。
我的第二个问题是如何使用常规表达式或其他内容填充$ JOB_NAME字段和一些现有作业。
有人能为我提供明确的步骤,我不是詹金斯的专家。
非常感谢
答案 0 :(得分:0)
您可以使用Groovy Postbuild Plugin来实现此目标。
安装插件后,转到构建后操作,然后选择 Groovy Postbuild 选项,并将以下脚本添加到其中。
然后,每当你运行你的工作时,它会询问JOB_NAME
,因为你已经将它定义为你工作中的参数,你将输入的任何项目名称,它将在下游触发该工作。
import hudson.model.*
import jenkins.model.*
def build = Thread.currentThread().executable
def jobPattern = manager.build.buildVariables.get("JOB_NAME")
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /$jobPattern/
}
matchedJobs.each { job ->
println "Triggering ${job.name} in the down stream...."
job.scheduleBuild(1, new Cause.UpstreamCause(build), new ParametersAction([ new StringParameterValue("PROPERTY1", "PROPERTY1VALUE"),new StringParameterValue("PROPERTY2", "PROPERTY2VALUE")]))
}