通知/检查 Jenkins 中的 SCM 轮询失败



我想检查或获取有关 Jenkins 中 SCM 轮询失败的通知(例如,当存储库 URL 更改或分支被删除时)。我想到了这些:

a) 一个 Jenkins 控制台脚本,它会列出这些错误的作业

b) 为 Jenkins 配置/安装插件以以某种方式通知我这一事实(电子邮件,任何东西)

c) 外部脚本/可执行文件(bash、python 等),它将列出由于 SCM 轮询失败而在过去 X 小时内失败的构建

正如您在问题中提到的,解决此问题的一种方法是使用脚本。 例如,Groovy Postbuild。

由于 Groovy 后期构建脚本在主服务器上运行,因此您可以使用标准 IO 函数访问每个作业的 scm 轮询.log在文件系统上找到。

例如,假设Windows主控,这里有一些(未经测试的)伪代码给你一些想法:

def error = false;
def jobsDirectory = new File("C:\Jenkins\jobs");
jobsDirectory.eachFile { 
    def pollingLog = new File(it.path + "\scm-polling.log");
    if(pollingLog.text =~ "ERROR")
    {
        manager.listener.logger.println(it.path + " has polling errors.");
        error = true;
    }
}
if(error) {
    manager.build.buildFailure();
}

一旦你把构建标记为失败,你可以使用 Jenkins 的标准电子邮件功能来发送电子邮件或使用 Email-ext 插件将其格式化为看起来不错。

最新更新