Jenkins 管道 - 手动清除工作区?

vac*_*cri 4 jenkins jenkins-pipeline

我们正在从旧的 Jenkins 设置迁移到所有计划都是声明性 jenkinsfile 管道的新服务器……但是,通过使用管道,我们无法再手动清除工作区。如何设置 Jenkins 以允许手动按需清理工作区?

我不希望每次运行时都清除工作区 - 我们可怕的遗留应用程序来自一个大小为 1.7G (!) 的存储库,并且需要很长时间才能拉取。每次运行都清除不是一个可行的选择。我不想遵循“ssh 进入并手动删除目录”选项,因为并非所有 Jenkins 用户都具有 ssh 访问权限。

我发现的所有现有答案都涉及“每次都作为管道的一部分使其发生”或“在服务器上运行脚本” - 当然在 Jenkins GUI 中有一种方法可以说“zap this workspace so we can下次建造干净”?

(我们可以使用 (buildnum) > Pipeline Steps > Allocate Node: Start > Workspace 查看工作区,但不能在那里切换)

bp2*_*010 5

您可以向管道添加一个参数:

properties([
  parameters([
    string(name: 'cleanWorkspace', defaultValue: 'false')
  ])
])
Run Code Online (Sandbox Code Playgroud)

然后在管道中,仅deleteDir()在参数传递时触发true

if(params.cleanWorkspace == 'true') {
    deleteDir()
}
Run Code Online (Sandbox Code Playgroud)