我想在不同的部署之间重用代码,例如分阶段和生产,唯一的区别是环境变量?
我想它看起来像这样:(虽然这显然不起作用)。
pipeline {
stage("Dev Deploy"){
environment {
PROP1 = "abc"
}
deploy ()
}
stage("Prod Deploy"){
environment {
PROP1 = "xyz"
}
deploy ()
}
}
deploy = steps{
sh "./gradlew deploy -Pproperty1=${env.PROP1}"
}
谢谢!
答案 0 :(得分:5)
你很亲密。你不能用直接的声明来完成它,但如果你混合了一点脚本,你可以用一个Closure完成这个。 "步骤"必须在每个阶段,所以你可以运行一个"脚本",但是定义为deploy
的Closure可以有任何正常的步骤。
def deploy = {
sh "./gradlew deploy -Pproperty1=${env.PROP1}"
}
pipeline {
agent any
stages {
stage("Dev Deploy"){
environment {
PROP1 = "abc"
}
steps {
script {deploy ()}
}
}
stage("Prod Deploy"){
environment {
PROP1 = "xyz"
}
steps {
script {deploy ()}
}
}
}
}