Cal*_*Cal 6 jenkins jenkins-groovy jenkins-pipeline
我正在尝试设置一个多分支管道配置,其中“部署”布尔复选框true
在非生产分支和false
生产构建中默认为。
pipeline {
parameters{
booleanParam(defaultValue: true, description: 'Do deploy after build', name: 'DEPLOY')
Run Code Online (Sandbox Code Playgroud)
有什么方法可以有条件地设置defaultValue=false
when $BRANCH_NAME == "production"
?
我想我可能已经通过一系列实验回答了我自己的问题。这看起来很简单,但我在两个分支之间的测试显示该Deploy
参数被正确地默认为开/关,具体取决于$BRANCH_NAME
def defaultDeploy = true
if ( BRANCH_NAME == "production" )
{
defaultDeploy = false
}
pipeline {
parameters{
booleanParam(defaultValue: defaultDeploy,
description: 'Do deploy after build', name: 'DEPLOY')
Run Code Online (Sandbox Code Playgroud)
在您的问题中,有点不清楚是BRANCH_NAME
指环境变量(如env.BRANCH_NAME
)还是另一个参数(如params.BRANCH_NAME
)。
如果是前者,则存在一些环境变量,这意味着存在一个环境,因此必须为节点分配其环境集。要分配节点,管道需要开始运行。要开始运行,用户需要选择运行管道的参数。所以这是一个先有鸡还是先有蛋的问题:在运行管道之前不能有环境变量,并且需要在运行管道之前确定参数。
\n\n如果是后者,并且您正在考虑一种情况,也许有一个名为 的字符串参数BRANCH_NAME
,和一个名为 的布尔参数,并且在参数页面上,当您键入时DEPLOY
,复选框DEPLOY
未被选中,但是一旦你按下它,它就会神奇地被选中......那么它可以通过使用 Active Choice 插件来完成 \xe2\x80\x94 ,并带来很多痛苦 \xe2\x80\x94 。maste
BRANCH_NAME
r
最后,如果您想要阻止从master
分支进行任何部署,您可以在部署之前检查参数和分支名称,如果参数为 false 或分支为 则拒绝部署master
。
归档时间: |
|
查看次数: |
13341 次 |
最近记录: |