gpt4 book ai didi

jenkins - 是否可以在Jenkins声明式管道中重用代码?

转载 作者:行者123 更新时间:2023-12-04 12:04:09 25 4
gpt4 key购买 nike

我想在不同的Jenkins部署之间重用代码。是否可以共享(例如)分期和生产,这样唯一的区别就是环境变量?
我想它看起来可能像这样(尽管这显然行不通):

pipeline {
stage("Dev Deploy"){
environment {
PROP1 = "abc"
}
deploy ()
}
stage("Prod Deploy"){
environment {
PROP1 = "xyz"
}
deploy ()
}
}

deploy = steps{
sh "./gradlew deploy -Pproperty1=${env.PROP1}"
}

最佳答案

你近了。您不能完全用直接的声明方式做到这一点,但是如果您混合使用一些脚本,则可以使用Closure完成此操作。 “步骤”必须在每个阶段中,以便您可以运行“脚本”,但是定义为deploy的闭包中可以包含任何常规步骤。

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 ()}
}
}
}
}

关于jenkins - 是否可以在Jenkins声明式管道中重用代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com