Jenkins Rebuild插件无法恢复历史构建文件参数问题求助
Jenkins Rebuild插件恢复文件参数的解决办法
试试这些可行的方案:
在流水线中手动保存文件参数信息到构建记录
Jenkins默认不会持久化文件参数的完整内容,你可以在流水线里加一段逻辑,把上传文件的名称、路径信息存到构建描述或者自定义属性里。重建时就能从历史构建记录里看到这些信息,手动重新上传对应文件;要是想自动化处理,还能在流水线里判断是否是Rebuild触发,读取保存的路径(只要文件还在服务器上)直接复用。
示例代码片段:pipeline { agent any parameters { string(name: 'STRING_PARAM', defaultValue: '', description: '字符串参数') file(name: 'FILE_PARAM', description: '文件参数') } stages { stage('记录文件信息') { steps { script { def filePath = params.FILE_PARAM def fileName = new File(filePath).name // 把文件名写到构建描述里,历史列表里能直接看到 currentBuild.description = "上传文件: ${fileName}" // 添加自定义属性,方便后续读取 currentBuild.addProperty("uploadedFilePath=${filePath}") } } } // 你的其他流水线阶段... } }用Extended Choice Parameter插件替代原生文件参数
原生文件参数不被Rebuild插件支持,但Extended Choice Parameter插件支持保存历史参数值,包括文件类型的配置。把流水线里的原生文件参数换成这个插件的文件选择类型,记得开启保存历史值的选项,Rebuild时就能自动恢复历史的文件选择记录了。存档上传文件并在重建时复用
把上传的文件作为构建产物存档,重建时从历史构建的artifacts里下载文件,不用用户重新上传。- 在流水线里添加存档步骤:
archiveArtifacts artifacts: params.FILE_PARAM, fingerprint: true- 重建时,在流水线开头加逻辑判断是否是Rebuild触发,如果是,从对应历史构建的artifacts里下载文件到当前工作目录,直接使用该路径即可。
自定义修改Rebuild插件(有开发能力的话)
Rebuild插件本身没做文件参数的恢复逻辑,因为Jenkins默认不会持久化大文件。要是你会开发Jenkins插件,可以修改Rebuild的源码,添加对文件参数的处理——比如记录文件在服务器上的存储路径,重建时自动引用。但要注意,Jenkins可能会清理旧构建的上传文件,得考虑文件生命周期的问题。
内容的提问来源于stack exchange,提问作者Barvazi Momo
相关产品推荐
相关产品推荐

