Во-первых, отметьте опцию Restrict where this project can be run
в конфигурации 'other_job' - вы должны указать там то же имя узла.Тогда это должно работать:
import hudson.model.*
def job = Hudson.instance.getJob('other_job')
job.scheduleBuild();
Если вы не хотите использовать эту опцию в вашем «other_job», то вы можете использовать NodeLabel Parameter Plugin (который вы уже использовали)и передать параметр NodeLabel в последующее задание.В этом случае см. Пример со страницы Groovy plugin , как запустить другое задание с параметрами (вам нужно использовать NodeParameterValue
вместо StringParameterValue
):
def job = Hudson.instance.getJob('MyJobName')
def anotherBuild
try {
def params = [
new StringParameterValue('FOO', foo),
]
def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params))
println "Waiting for the completion of " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName)
anotherBuild = future.get()
} catch (CancellationException x) {
throw new AbortException("${job.fullDisplayName} aborted.")
}
println HyperlinkNote.encodeTo('/' + anotherBuild.url, anotherBuild.fullDisplayName) + " completed. Result was " + anotherBuild.result
Если это не такработает, возможно, проблема связана с ограничениями узла (например, существует только один исполнитель для узла).
ПРИМЕЧАНИЕ. Я предпочитаю использовать конвейеры Jenkins для конфигураций заданий.Это позволяет хранить ваши конфигурации сборки в Jenkinsfiles , которые можно загрузить из репозитория (например, из GitLab).См. пример запуска задания с NodeParameterValue
.