我在项目中的不同子项目上有一个长期运行的Gradle任务列表.我想使用Jenkins声明性管道并行运行它们.
我希望这样的东西可能会起作用:
projects = [":a", ":b", ":c"]
pipeline {
stage("Deploy"){
parallel {
for(project in projects){
stage(project ) {
when {
expression {
someConditionalFunction(project)
}
}
steps {
sh "./gradlew ${project}:someLongrunningGradleTask"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
不用说,由于它是期待阶段而不是for,因此会产生编译错误.关于如何克服这个问题的任何想法?谢谢
我想在不同的部署之间重用代码,例如分段和生产,以便唯一的区别是环境变量?
我想它看起来像这样:(虽然这显然不起作用).
pipeline {
stage("Dev Deploy"){
environment {
PROP1 = "abc"
}
deploy ()
}
stage("Prod Deploy"){
environment {
PROP1 = "xyz"
}
deploy ()
}
}
deploy = steps{
sh "./gradlew deploy -Pproperty1=${env.PROP1}"
}
Run Code Online (Sandbox Code Playgroud)
谢谢!