如何禁用Jenkins中checkout scm默认的工作区清理功能
解决Jenkins checkout scm重复清理工作区的问题
问题根源:默认的
checkout scm会触发工作区清理(日志显示Wiping out workspace first.),即便已经用cleanWs()清理过,仍会覆盖工作区之前的修改。正确解决方案(以Git SCM为例):
需要显式覆盖SCM扩展中的工作区清理配置,将wipeOutWorkspace设为false。代码示例:cleanWs() // 这里编写你修改工作区的代码 checkout([ $class: 'GitSCM', branches: scm.branches, userRemoteConfigs: scm.userRemoteConfigs, extensions: scm.extensions + [[$class: 'WipeWorkspace', wipeOutWorkspace: false]] ]) // 后续执行的代码不会再丢失之前的工作区修改原理:默认的
scm对象已包含WipeWorkspace扩展且默认值为true,通过追加并覆盖该扩展的配置,即可禁用checkout时的自动清理。若使用FileSystem SCM:
直接在配置中设置clearWorkspace: false,代码示例:checkout([ $class: 'FileSystemSCM', clearWorkspace: false, source: '/path/to/your/local/repo' // 替换为你的文件系统源路径 ])
内容的提问来源于stack exchange,提问作者Sava Kezic
相关产品推荐
相关产品推荐

