ПРИМЕЧАНИЕ: Pipeline Plugin должен сделать этот вопрос спорным, но у меня не было возможности обновить нашу инфраструктуру.
Чтобы запустить последующее задание без параметров:
job = manager.hudson.getItem(name)
cause = new hudson.model.Cause.UpstreamCause(manager.build)
causeAction = new hudson.model.CauseAction(cause)
manager.hudson.queue.schedule(job, 0, causeAction)
Чтобы запустить последующее задание с параметрами , необходимо добавить ParametersAction
. Предположим, что Job1
имеет параметры A
и C
, которые по умолчанию равны "B" и "D" соответственно. I.e.:
A == "B"
C == "D"
Предположим, что Job2
имеет те же параметры A и B, но также принимает параметр E
, который по умолчанию равен "F". Следующий скрипт посткомпиляции в Job1
скопирует его параметры A
и C
и установит параметр E
для объединения значений A
и C
:
params = []
val = ''
manager.build.properties.actions.each {
if (it instanceof hudson.model.ParametersAction) {
it.parameters.each {
value = it.createVariableResolver(manager.build).resolve(it.name)
params += it
val += value
}
}
}
params += new hudson.model.StringParameterValue('E', val)
paramsAction = new hudson.model.ParametersAction(params)
jobName = 'Job2'
job = manager.hudson.getItem(jobName)
cause = new hudson.model.Cause.UpstreamCause(manager.build)
causeAction = new hudson.model.CauseAction(cause)
def waitingItem = manager.hudson.queue.schedule(job, 0, causeAction, paramsAction)
def childFuture = waitingItem.getFuture()
def childBuild = childFuture.get()
hudson.plugins.parameterizedtrigger.BuildInfoExporterAction.addBuildInfoExporterAction(
manager.build, childProjectName, childBuild.number, childBuild.result
)
Вы должны добавить $JENKINS_HOME/plugins/parameterized-trigger/WEB-INF/classes
к плагину Groovy Postbuild Additional groovy classpath
.