Jenkins:如果clang分析器发现新bug,如何将构建标记为不稳定

时间:2013-06-18 13:24:38

标签: ios jenkins continuous-integration jenkins-plugins clang-static-analyzer

我在mac服务器上设置了Jenkins CI,使用Xcode Build和Clang Scan-Build插件对iOS项目进行自动构建/分析。我设置了电子邮件通知,以便在用户使用可编辑电子邮件通知插件破坏构建时通知用户。但是,如果Clang Scan-Build阶段检测到自上次提交以来的新错误,我还想给用户发送电子邮件,这导致了我的问题:如果有的话,我如何让clang插件将构建标记为不稳定/失败是否引入了新的错误?(如果自上次提交以来引入了新的错误,我想通知用户,而不仅仅是超出了阈值。)

我很确定这是可能的,因为clang插件已经提供了以前构建的clang bug计数结果的图表。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

不确定这是否正是您正在寻找的,但我使用编译器警告插件来推断我的CLANG-LLVM编译器警告。这必须在Jenkins系统级别定义(仍然是GUI,但不是每个项目):

Name: CLANG-LLVM
Link Name: Compiler Warnings
Trend Report Name: Warning trend
Regular Expression: ^(.+?):(\d+):(?:\d+:)?(?:\{\d:-\}+)?(?:.*) (warning|error): (.*)$
Mapping Script:
    import hudson.plugins.warnings.parser.Warning
    String fileName = matcher.group(1)
    String lineNumber = matcher.group(2)
    String category = matcher.group(3)
    String message = matcher.group(4)
    if (message.contains('deprecated')) category='deprecation';

    return new Warning(fileName, Integer.parseInt(lineNumber), "Clang-LLVM", category, message);

Example Log Message:
    /Development/foo.m:4634:7: warning: 'runModalForDirectory:file:' is deprecated [-Wdeprecated-declarations,6]

然后我们在控制台日志的后期构建扫描中运行它。 并且,在警告的Advanced...部分,您可以告诉它如何解释它们的“健康警告”和状态设置。