2

我正在尝试为 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 插件代码,我很想听听。

4

0 回答 0