package slacknotifications.teamcity;
import jetbrains.buildServer.responsibility.ResponsibilityEntry;
import jetbrains.buildServer.responsibility.TestNameResponsibilityEntry;
import jetbrains.buildServer.serverSide.*;
import jetbrains.buildServer.serverSide.settings.ProjectSettingsManager;
import jetbrains.buildServer.tests.TestName;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
public class TestListener extends BuildServerAdapter {
private SBuildServer myBuildServer;
public TestListener(SBuildServer sBuildServer, ProjectSettingsManager settings) {
myBuildServer = sBuildServer;
logit("TestListener :: Starting");
}
public void register(){
myBuildServer.addListener(this);
logit("TestListener :: Registering");
}
/** No longer used in TC 7.x
*
* @param runningBuild
* @param buildFailed
*/
public void beforeBuildFinish(SRunningBuild runningBuild,
boolean buildFailed) {
logit("beforeBuildFinish(SRunningBuild runningBuild,boolean buildFailed)");
}
@Override
public void beforeBuildFinish(SRunningBuild runningBuild) {
logit("beforeBuildFinish(SRunningBuild runningBuild)");
}
@Override
public void buildFinished(SRunningBuild build) {
logit("buildFinished(SRunningBuild build)");
}
@Override
public void buildInterrupted(SRunningBuild build) {
logit("buildInterrupted(SRunningBuild build)");
}
@Override
public void buildStarted(SRunningBuild build) {
logit("buildStarted(SRunningBuild build)");
}
public void responsibleChanged(SBuildType bt, ResponsibilityInfo oldValue,
ResponsibilityInfo newValue, boolean isUserAction) {
logit("responsibleChanged(SBuildType bt, ResponsibilityInfo oldValue, ResponsibilityInfo newValue, boolean isUserAction)");
String oldUser = "Nobody";
String newUser = "Nobody";
try {
oldUser = oldValue.getResponsibleUser().getDescriptiveName();
} catch (Exception e) {}
try {
newUser = newValue.getResponsibleUser().getDescriptiveName();
} catch (Exception e) {}
logit("Build " + bt.getFullName()
+ " has changed responsibility from "
+ oldUser + " to " + newUser);
}
/**
* @param bt
* @param oldValue
* @param newValue
* @since 7.0
*/
@Override
public void responsibleChanged(@NotNull SBuildType bt,
@NotNull ResponsibilityEntry oldValue,
@NotNull ResponsibilityEntry newValue){
logit("responsibleChanged(@NotNull SBuildType bt, @NotNull ResponsibilityEntry oldValue, @NotNull ResponsibilityEntry newValue)");
}
@Override
public void responsibleChanged(SProject project,
Collection<TestName> testNames, ResponsibilityEntry entry,
boolean isUserAction) {
logit("responsibleChanged(SProject project, Collection<TestName> testNames, ResponsibilityEntry entry, boolean isUserAction)");
}
@Override
public void responsibleChanged(SProject project,
TestNameResponsibilityEntry oldValue,
TestNameResponsibilityEntry newValue, boolean isUserAction) {
logit("responsibleChanged(SProject project, TestNameResponsibilityEntry oldValue, TestNameResponsibilityEntry newValue, boolean isUserAction)");
}
private void logit(String s){
Loggers.SERVER.info("#####################################################################");
Loggers.SERVER.info("# " + s);
Loggers.SERVER.info("#####################################################################");
}
}