为 Jenkins 添加多个工作区清理
Add Multiple Workspace Cleanup for Jenkins
我可以在单个作业中执行多次 构建完成后删除工作区 吗?
- 失败状态:清除所有工作空间
- 成功状态:仅清除分发包目录(**/target/dist)
我们使用 build-stalker 插件将构建分解为编译和测试作业,提供两者之间的 link。编译作业不会自行清理,因为测试作业会这样做,但我们不会 运行 每个编译作业的测试作业(只有 4 小时内的最新作业)留下孤立的工作区。
我想要一种减少孤立工作区影响的方法,基于选择性状态的清理是一种方法。
我不知道有提供此类功能的 Jenkins 插件。
我将建立以下内容:
让每个编译构建都写一行它的工作空间路径,例如:
.../jenkins/workspace/<...compile job...>/
通过使用您选择的语言的脚本(bash、Groovy、cmd、...)生成如下文件:
.../jenkins/workspace/toBeWipedOut
创建一个以您选择的语言定期运行脚本的作业:
- 读取文件
- 删除其中提到的工作空间,除了最后一个
- 删除除最后一行之外的所有行
或
- 让每个编译构建写一行其作业名称。
- 请参阅 Wipe out workspaces of all jobs 了解如何按作业名称擦除工作区。
我可以在单个作业中执行多次 构建完成后删除工作区 吗?
- 失败状态:清除所有工作空间
- 成功状态:仅清除分发包目录(**/target/dist)
我们使用 build-stalker 插件将构建分解为编译和测试作业,提供两者之间的 link。编译作业不会自行清理,因为测试作业会这样做,但我们不会 运行 每个编译作业的测试作业(只有 4 小时内的最新作业)留下孤立的工作区。
我想要一种减少孤立工作区影响的方法,基于选择性状态的清理是一种方法。
我不知道有提供此类功能的 Jenkins 插件。
我将建立以下内容:
让每个编译构建都写一行它的工作空间路径,例如:
.../jenkins/workspace/<...compile job...>/
通过使用您选择的语言的脚本(bash、Groovy、cmd、...)生成如下文件:
.../jenkins/workspace/toBeWipedOut
创建一个以您选择的语言定期运行脚本的作业:
- 读取文件
- 删除其中提到的工作空间,除了最后一个
- 删除除最后一行之外的所有行
或
- 让每个编译构建写一行其作业名称。
- 请参阅 Wipe out workspaces of all jobs 了解如何按作业名称擦除工作区。