如何覆盖 jenkinsfile 的默认参数?
How can I override a jenkinsfile's default parameters?
有时,我们想要创建多个使用相同 Jenkinsfile 的作业,而不是一个。例如,这可能会发生,因为我们希望维护根据参数划分的日志,而不是让一个作业在其上查找正确的日志。
但是,在这种情况下,我们不能使用 Jenkinsfile 中的参数定义,因为我们在作业实例上定义的任何默认值都将被以下执行覆盖 Jenkinsfile 中定义的任何内容(和如果我们不定义默认值,也会发生这种情况。
所以,在这种情况下,我们唯一想出的方法是删除 Jenkinsfile 中的参数定义,并直接在作业上定义参数,这不是最优的。
我的意思是,我同意在大多数情况下这是正确的行为,因为您不希望您的参数不同步并且没有版本控制,但是有没有办法指定 Jenkins 跳过参数重新配置或覆盖 Jenkinsfile 中写入的默认参数?可以 activated/deactivated 逐项工作。
我自己也遇到过这个问题,我们是这样解决的:
string(name: 'parameterName', defaultValue: params.parameterName ?:'your default value')
现在不会覆盖通过 Jenkins 作业配置定义的默认值。
有时,我们想要创建多个使用相同 Jenkinsfile 的作业,而不是一个。例如,这可能会发生,因为我们希望维护根据参数划分的日志,而不是让一个作业在其上查找正确的日志。
但是,在这种情况下,我们不能使用 Jenkinsfile 中的参数定义,因为我们在作业实例上定义的任何默认值都将被以下执行覆盖 Jenkinsfile 中定义的任何内容(和如果我们不定义默认值,也会发生这种情况。
所以,在这种情况下,我们唯一想出的方法是删除 Jenkinsfile 中的参数定义,并直接在作业上定义参数,这不是最优的。
我的意思是,我同意在大多数情况下这是正确的行为,因为您不希望您的参数不同步并且没有版本控制,但是有没有办法指定 Jenkins 跳过参数重新配置或覆盖 Jenkinsfile 中写入的默认参数?可以 activated/deactivated 逐项工作。
我自己也遇到过这个问题,我们是这样解决的:
string(name: 'parameterName', defaultValue: params.parameterName ?:'your default value')
现在不会覆盖通过 Jenkins 作业配置定义的默认值。