我正在尝试使用JJ.DSL创建一个Jenkins作业。我正在尝试创建一个逗号分隔的字符串,其中包含我需要运行的模拟。这是作业代码:
job("run-simulations") {
parameters {
choiceParam('targetEnvironment', ['stage', 'dev'], 'Select the target environment')
booleanParam('s1', true, 'include simulation 1')
booleanParam('s2', true, 'include simulation 2')
booleanParam('s3', true, 'include simulation 3')
booleanParam('s4', true, 'include simulation 4')
}
steps {
gradle {
useWrapper true
tasks 'clean runPerformanceTest'
switches '''
-DtargetEnvironment=\${targetEnvironment}
-Dsimulations=${getSimulations(${s1}, ${s2}, ${s3}, ${s4})}
'''
}
}
}
static def getSimulations(s1, s2, s3, s4) {
String simulations = [
s1 ? "Simulation1" : "",
s2 ? "Simulation2" : "",
s3 ? "Simulation3" : "",
s4 ? "Simulation4" : ""
]
return simulations.join(",")
}
我得到了这个结果:
gradlew -DtargetEnvironment=dev -Dsimulations=${getSimulations(true, true, true, true)}
先谢了。
1条答案
按热度按时间vkc1a9a21#
我使用GString示例,因为我的计算机上没有工作Gradle:
你需要使用圆括号来调用函数,并在双引号内传递参数。你还需要在getSimulations函数中使用
List<String>
类型。然而,为了更清晰,我将从该位置提取函数并仅传递结果变量: