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的一部分):一次在Windows Slave上,一次在Linux Jenkins Slave上。
我想我想要的东西很明显:一个与“ some_name_Windows”回显,和一个与“ some_name_Linux”回显,但是我得到类似“ some_name_Windows”和“ some_name_Windows_Linux”的信息。
在Jenkinsfile管道的两个(或多个)并行过程中,如何在一个从站上本地使用变量?
答案 0 :(得分:0)
如果声明的变量不带def
关键字,则该变量具有全局范围。更改为
def kw_job = "some_name"
你应该很好。