Jenkins在删除构建后执行操作

时间:2015-10-01 07:55:06

标签: jenkins jenkins-plugins

我需要在Jenkins上删除构建(由用户或自动)后执行一些操作。

实际上,我需要以下内容:

  1. 发送包含已删除构建信息的http请求。
  2. 删除远程位置的构建工件。
  3. 关于#2:我使用Artifact Deployer插件来部署构建,但由于问题 删除构建后,https://issues.jenkins-ci.org/browse/JENKINS-26109构建不会在远程位置删除。

    任何方式,我如何在删除构建时做些什么?也许我必须编写脚本或创建插件?

2 个答案:

答案 0 :(得分:3)

有一个类RunListener,它有方法onDeleted。

做这样的事情:

import hudson.model.Run;
import hudson.model.listeners.RunListener;
import hudson.Extension;

@Extension
public class DeleteListener extends RunListener<Run> {
      @Override
      public void onDeleted(Run r) {
         // your code here
      }
}

此外,请记住,如果您删除了作业事件onDeleted will not be fired

答案 1 :(得分:0)

我认为插件不是必需的。 您可以为此编写一个cron作业,该作业会连续检查构建目录以查找内容中的任何更改。

$JENKINS_HOME/jobs/your_job_here/builds/

如果删除了任何文件夹,则意味着手动/自动删除构建。然后,您可以触发邮件或执行您想要执行的任何任务,因为现在您知道构建已被删除。