我已经用下面的属性配置了jenkinsfile,但是当从master分支创建一个新分支时,它不适用于jenkins服务器。
#!groovy
properties([[$class: 'ParametersDefinitionProperty',
parameterDefinitions: [
[$class: 'StringParameterDefinition', name: 'isValid', defaultValue: 'false']
]
]])
node {
stage 'Checkout'
checkout scm
.....
.....
}
在git中创建分支后,该分支在jenkins服务器中可见,并带有立即构建选项。
第一次从jenkins服务器上运行分支后,会变成Build with Parameters选项。
我在jenkinsfile中有没有遗漏什么需要配置的?为什么在创建分支时没有在jenkins服务器中配置参数?
5条答案
按热度按时间w8ntj3qf1#
您可以通过使用
params.isValid
而不是env.isValid
来解决这个问题。wlp8pajw2#
我用来解决这个问题的方法是检查分支上的
env.BUILD_NUMBER == "1"
,然后为我的参数设置一些默认值,以便在该分支的初始运行中使用。例如:myzjeezk3#
这似乎在2019年被打破。您可以通过在管道中设置一个初始阶段来解决这个问题,该阶段将参数值设置回环境变量。之后,您可以在后续阶段正常引用它。
qpgpyjmq4#
如果你使用的是声明式管道,只需添加下面的阶段作为你的第一阶段。
此问题在JENKINS-41929上被跟踪。
fgw7neuy5#
管道脚本中的首次属性初始化存在类似问题。看起来最好的方法是这样的,例如我有SKIP_RUN参数,当我更新作业管道时,我可以在每个管道中运行它,并且在Jenkins UI中更新属性:
**注意:**这里的主要内容是,如果property为'null',则给出初始值“def skipRun = params。SKIP_RUN?:true”
更新时间:2023-04-25(脚本v2 -改进版)。不知道为什么,但最初的答案(上面的脚本块)开始不工作-像往常一样,SKIP_RUN开始为空。因此,这里是“SKIP_BUILD”属性的改进答案,我使用它来跳过构建所有作业以初始化Jenkins作业参数更改。脚本检查null属性,也检查在以前的构建中是否存在此属性-如果不存在,则意味着我们需要SKIP_RUN并初始化属性:
**注意:**您需要批准一些类/方法/脚本在Jenkins中执行。