我的 Jenkins 共享管道由内部数十个存储库使用,定义了多个参数字段。我们有几个最初使用另一个库或他们自己的临时管道的存储库,但随后导入了共享库。
在其中一些情况下,“使用参数构建”UI 会同时显示旧参数和新参数。我们已经多次重新运行管道,但旧的字段不会消失。 如果我们创建一个
new分支,则仅显示新字段。 我认为控制器上有一个我们必须擦除的 xml 文件,但我不确定在哪里。
有人看过这个吗?分辨率是多少?
更新1
jobs
文件夹查看显示此内容的分支,并备份
config.xml
文件:> cd /mnt/data/jenkins/jobs/<org>/jobs/workflows/jobs/<repo>/branches/jenkins-test/
> mv config.xml config.xml-bak
重新运行作业后,它会重新创建
config.xml
并且具有相同的问题:旧字段和新字段仍然显示。
所以我删除了整个jenkins-test
分支文件夹。这项工作不会在用户界面中消失。我对 Github 中的分支进行了测试提交,Jenkins 拿起它并运行它。它会自动在控制器上重新创建
jenkins-test
文件夹,并在重新尝试使用参数构建时,它仍然显示旧参数和新参数。 必须继续挖掘...
更新2
更新4
pipeline {
agent none
stages {
stage ('hello') {
steps {
echo 'hello!'
}
}
}
}
返回“使用参数构建”UI,它现在“仅”显示“旧”参数字段。
这是从哪里来的?卡在哪里了?? 我的第一个猜测是您正在隐式加载 Pipeline 库并在该隐式加载的 Pipeline 库中定义参数。 隐式加载的管道库将加载到 Jenkinsfile 中,无需
@Library
检查作业和这些作业的父文件夹以及已定义并启用“隐式加载”复选框的管道库的根。
我知道已经有一段时间了,但以防万一其他人遇到此错误:
就我而言,将其放在共享库之上很有帮助:
在我的情况下,旧管道是脚本化的,而共享库是声明性的,所以我猜脚本化参数可能存储在其他地方,并且只能由脚本化管道属性([])函数覆盖,而不能由参数{覆盖} 块。