在自定义TeamCity Notificator中获取构建失败原因的问题

时间:2014-04-01 15:34:20

标签: java teamcity teamcity-8.0

我尝试为TeamCity创建自定义Notificator插件,当我们的某个版本失败时,该插件会向我的团队Slack实例发送消息。

我们能够让它运行,并按预期发送消息。当我们尝试查询传递到SRunningBuild方法实现中的notifyBuildFailed以查找失败原因列表时,会出现此问题。当我们不尝试此操作时,将按预期显示失败消息。当我们尝试提取失败原因列表时,不会显示该消息,据我们所知,日志中没有异常。

这是我们代码的摘录:

public void notifyBuildFailed(@NotNull SRunningBuild build, @NotNull Set<SUser> users) {
    String concatenatedFailureReasons = 
            getConcatenatedFailureReasons(build.getFailureReasons());

    sendNotification("Build failed for the following reasons:\n" +
            concatenatedFailureReasons, users);
}

private String getConcatenatedFailureReasons(List<BuildProblemData> reasons) {
    String concatenatedFailureReasons = "";

    for (BuildProblemData buildProblemData : reasons) {
        concatenatedFailureReasons += buildProblemData.getDescription();
    }

    return concatenatedFailureReasons;
}

据我所知,失败实际上是在调用build.getFailureReasons()时发生的,因为当我使getConcatenatedFailureReasons方法只返回一个空字符串时,它仍然无法正确显示消息。

由于我认为是TeamCity插件开发的本质,实际调试此问题很难。如果有人有一个很好的方法来介绍TeamCity插件代码,我很乐意听到这个。

0 个答案:

没有答案