tasks = [:]
availableNodes.each { nodeName ->
final def ProfilesForThisNode = getProfilesForNode(args.Profiles, nodeName)
if (ProfilesForThisNode) {
tasks[nodeName] = {
node(nodeName) {
try {
final def workspace = path("$path123")
ws("$workspace") {
stage("$nodeName transmission") {
kw_job = "some_name"
if (isWindows()) {
if (!kw_job.contains("Windows")) {
kw_job = kw_job + "_Windows"
}
}
else {
if(!kw_job.contains("Linux")) {
kw_job = kw_job + "_Linux"
}
}
echo kw_job
}
}
} catch (hudson.model.Run.RunnerAbortedException e) {
currentBuild.result = 'FAILURE'
}
}
}
}
}
parallel(tasks)
Я использую этот код (часть Jenkinsfile) дважды: один раз на Slave Windows и один раз на Slave Linux Jenkins.
Я думаю, это довольно очевидно, чего я хочу: один эхос «some_name_Windows» и один с «some_name_Linux», но я получаю что-то вроде «some_name_Windows» и «some_name_Windows_Linux».
Как локально использовать переменные на одном ведомом устройстве во время двух (или более) параллельных процессов с Jenkinsfileтрубопровод?