use of fr.inria.jtravis.entities.Build in project repairnator by Spirals-Team.
the class PatchNotifier method observe.
public void observe(ProjectInspector inspector) {
JobStatus status = inspector.getJobStatus();
Build buggyBuild = inspector.getBuggyBuild();
Repository repository = buggyBuild.getRepository();
if (status.isHasBeenPatched()) {
String subject = "Patched build: " + buggyBuild.getId() + " - " + repository.getSlug();
String text = "Hurray !\n\n" + "Patch(es) has been found for the following build: " + Utils.getTravisUrl(buggyBuild.getId(), repository.getSlug()) + ".\n";
if (status.isHasBeenPushed()) {
String slug = repository.getSlug();
String repoURL = Utils.getGithubRepoUrl(slug);
String branchName = buggyBuild.getCommit().getBranch();
String[] divideSlug = slug.split("/");
String projectName = divideSlug[1];
text += "Data about patches has been pushed on the following branch: " + status.getGitBranchUrl() + ".\n\n";
text += "Follow those instruction to create a pull request:\n";
text += "mkdir " + projectName + "\n";
text += "cd " + projectName + "\n";
text += "git init\n";
text += "git fetch " + repoURL + " " + branchName + "\n";
text += "git checkout -b patch FETCH_HEAD\n";
text += "vi [file_to_patch]\n";
text += "git commit -m \"tentative patch\" -a\n";
if (status.isHasBeenForked()) {
text += "git push " + status.getForkURL() + "\n";
} else {
text += "Then fork the repository (" + slug + ") from Github interface\n";
text += "git push [url to the fork]\n";
}
}
text += "You may find several information on the following about those patches: \n";
if (status.getNopolInformations() != null && !status.getNopolPatches().isEmpty() && !this.alreadyNotifiedForNopol) {
text += this.notifyForNopol(status);
this.notifyEngines("[NOPOL] " + subject, text);
}
if (status.getNpeFixPatches() != null && !status.getNpeFixPatches().isEmpty() && !this.alreadyNotifiedForNPEFix) {
text += this.notifyForNPEFix(status);
this.notifyEngines("[NPEFIX] " + subject, text);
}
if (status.getAstorPatches() != null && !status.getAstorPatches().isEmpty() && !this.alreadyNotifiedForAstor) {
text += this.notifityForAstor(status);
this.notifyEngines("[ASTOR] " + subject, text);
}
}
}
use of fr.inria.jtravis.entities.Build in project repairnator by Spirals-Team.
the class InspectorSerializer4Bears method serializeAsJson.
private JsonElement serializeAsJson(ProjectInspector inspector) {
JobStatus jobStatus = inspector.getJobStatus();
BuildToBeInspected buildToBeInspected = inspector.getBuildToBeInspected();
Build build = inspector.getPatchedBuild();
Build previousBuild = inspector.getBuggyBuild();
int previousBuildId = (previousBuild != null) ? previousBuild.getId() : -1;
String state = this.getPrettyPrintState(inspector);
String realState = (jobStatus.getPipelineState() != null) ? jobStatus.getPipelineState().name() : "null";
String typeOfFailures = StringUtils.join(jobStatus.getMetrics().getFailureNames(), ",");
String previousBuildSlug = (previousBuild != null) ? previousBuild.getRepository().getSlug() : "";
String committerEmail = (build.getCommit().getCommitterEmail() != null) ? build.getCommit().getCommitterEmail() : "-";
JsonObject result = new JsonObject();
result.addProperty("buildId", build.getId());
result.addProperty("previousBuildId", previousBuildId);
result.addProperty("scannedBuildStatus", buildToBeInspected.getStatus().name());
result.addProperty("status", state);
result.addProperty("realStatus", realState);
result.addProperty("checkoutType", inspector.getCheckoutType().name());
result.addProperty("typeOfFailures", typeOfFailures);
result.addProperty("repositoryName", build.getRepository().getSlug());
result.addProperty("prNumber", build.getPullRequestNumber());
result.addProperty("buildFinishedDateStr", Utils.formatCompleteDate(build.getFinishedAt()));
this.addDate(result, "buildFinishedDate", build.getFinishedAt());
result.addProperty("buildFinishedDay", Utils.formatOnlyDay(build.getFinishedAt()));
result.addProperty("hostname", Utils.getHostname());
result.addProperty("buildReproductionDateStr", Utils.formatCompleteDate(new Date()));
this.addDate(result, "buildReproductionDate", new Date());
result.addProperty("buildTravisUrl", Utils.getTravisUrl(build.getId(), build.getRepository().getSlug()));
result.addProperty("previousBuildTravisUrl", Utils.getTravisUrl(previousBuildId, previousBuildSlug));
result.addProperty("committerEmail", committerEmail);
result.addProperty("runId", buildToBeInspected.getRunId());
return result;
}
use of fr.inria.jtravis.entities.Build in project repairnator by Spirals-Team.
the class InspectorSerializer4Bears method serializeAsList.
private List<Object> serializeAsList(ProjectInspector inspector) {
JobStatus jobStatus = inspector.getJobStatus();
BuildToBeInspected buildToBeInspected = inspector.getBuildToBeInspected();
Build build = inspector.getPatchedBuild();
Build previousBuild = inspector.getBuggyBuild();
int previousBuildId = (previousBuild != null) ? previousBuild.getId() : -1;
String state = this.getPrettyPrintState(inspector);
String realState = (jobStatus.getPipelineState() != null) ? jobStatus.getPipelineState().name() : "null";
String typeOfFailures = StringUtils.join(jobStatus.getMetrics().getFailureNames(), ",") + "";
String previousBuildSlug = (previousBuild != null) ? previousBuild.getRepository().getSlug() : "";
String committerEmail = (build.getCommit().getCommitterEmail() != null) ? build.getCommit().getCommitterEmail() : "-";
List<Object> dataCol = new ArrayList<Object>();
dataCol.add(build.getId() + "");
dataCol.add(previousBuildId + "");
dataCol.add(buildToBeInspected.getStatus().name());
dataCol.add(state);
dataCol.add(realState);
dataCol.add(inspector.getCheckoutType().name());
dataCol.add(typeOfFailures);
dataCol.add(build.getRepository().getSlug());
dataCol.add(build.getPullRequestNumber() + "");
dataCol.add(Utils.formatCompleteDate(build.getFinishedAt()));
dataCol.add(Utils.formatOnlyDay(build.getFinishedAt()));
dataCol.add(Utils.getHostname());
dataCol.add(Utils.formatCompleteDate(new Date()));
dataCol.add(Utils.getTravisUrl(build.getId(), build.getRepository().getSlug()));
dataCol.add(Utils.getTravisUrl(previousBuildId, previousBuildSlug));
dataCol.add(committerEmail);
dataCol.add(buildToBeInspected.getRunId());
return dataCol;
}
use of fr.inria.jtravis.entities.Build in project repairnator by Spirals-Team.
the class InspectorTimeSerializer4Bears method serializeAsJson.
private JsonElement serializeAsJson(ProjectInspector inspector) {
Map<String, Integer> durations = inspector.getJobStatus().getMetrics().getStepsDurationsInSeconds();
int cloneRepository = durations.getOrDefault(CloneRepository.class.getSimpleName(), 0);
int checkoutBuild = durations.getOrDefault(CheckoutPatchedBuild.class.getSimpleName(), 0);
int buildProjectBuild = durations.getOrDefault(BuildProject.class.getSimpleName() + "Build", 0);
int testProjectBuild = durations.getOrDefault(TestProject.class.getSimpleName() + "Build", 0);
int gatherTestInformationBuild = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "Build", 0);
int checkoutPreviousBuild = durations.getOrDefault(CheckoutBuggyBuild.class.getSimpleName(), 0);
int buildProjectPreviousBuild = durations.getOrDefault(BuildProject.class.getSimpleName() + "PreviousBuild", 0);
int testProjectPreviousBuild = durations.getOrDefault(TestProject.class.getSimpleName() + "PreviousBuild", 0);
int gatherTestInformationPreviousBuild = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "PreviousBuild", 0);
int checkoutPreviousBuildSourceCode = durations.getOrDefault(CheckoutBuggyBuildSourceCode.class.getSimpleName(), 0);
int buildProjectPreviousBuildSourceCode = durations.getOrDefault(BuildProject.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int testProjectPreviousBuildSourceCode = durations.getOrDefault(TestProject.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int gatherTestInformationPreviousBuildSourceCode = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int pushBuild = durations.getOrDefault(PushIncriminatedBuild.class.getSimpleName(), 0);
int computeClasspath = durations.getOrDefault(ComputeClasspath.class.getSimpleName(), 0);
int dependencyResolution = durations.getOrDefault(ResolveDependency.class.getSimpleName(), 0);
int totalDuration = cloneRepository + checkoutBuild + buildProjectBuild + testProjectBuild + gatherTestInformationBuild + checkoutPreviousBuild + buildProjectPreviousBuild + testProjectPreviousBuild + gatherTestInformationPreviousBuild + checkoutPreviousBuildSourceCode + buildProjectPreviousBuildSourceCode + testProjectPreviousBuildSourceCode + gatherTestInformationPreviousBuildSourceCode + pushBuild + dependencyResolution + computeClasspath;
Build build = inspector.getPatchedBuild();
Build previousBuild = inspector.getBuggyBuild();
int previousBuildId = (previousBuild != null) ? previousBuild.getId() : -1;
JsonObject result = new JsonObject();
result.addProperty("buildId", build.getId());
result.addProperty("previousBuildId", previousBuildId);
result.addProperty("repositoryName", build.getRepository().getSlug());
result.addProperty("buildReproductionDateStr", Utils.formatCompleteDate(new Date()));
this.addDate(result, "buildReproductionDate", new Date());
result.addProperty("hostname", Utils.getHostname());
result.addProperty("totalDuration", totalDuration);
result.addProperty("clonage", cloneRepository);
result.addProperty("checkoutBuild", checkoutBuild);
result.addProperty("build", buildProjectBuild);
result.addProperty("test", testProjectBuild);
result.addProperty("gatherTestInfo", gatherTestInformationBuild);
result.addProperty("checkoutPrevious", checkoutPreviousBuild);
result.addProperty("buildPrevious", buildProjectPreviousBuild);
result.addProperty("testPrevious", testProjectPreviousBuild);
result.addProperty("gatherTestInfoPrevious", gatherTestInformationPreviousBuild);
result.addProperty("checkoutPreviousSourceCode", checkoutPreviousBuildSourceCode);
result.addProperty("buildPreviousSourceCode", buildProjectPreviousBuildSourceCode);
result.addProperty("testProjectPreviousBuildSourceCode", testProjectPreviousBuildSourceCode);
result.addProperty("gatherTestInformationPreviousBuildSourceCode", gatherTestInformationPreviousBuildSourceCode);
result.addProperty("push", pushBuild);
result.addProperty("dependendencyResolution", dependencyResolution);
result.addProperty("computeClasspath", computeClasspath);
result.addProperty("runId", inspector.getBuildToBeInspected().getRunId());
return result;
}
use of fr.inria.jtravis.entities.Build in project repairnator by Spirals-Team.
the class InspectorTimeSerializer4Bears method serializeAsList.
private List<Object> serializeAsList(ProjectInspector inspector) {
Map<String, Integer> durations = inspector.getJobStatus().getMetrics().getStepsDurationsInSeconds();
int cloneRepository = durations.getOrDefault(CloneRepository.class.getSimpleName(), 0);
int checkoutBuild = durations.getOrDefault(CheckoutPatchedBuild.class.getSimpleName(), 0);
int buildProjectBuild = durations.getOrDefault(BuildProject.class.getSimpleName() + "Build", 0);
int testProjectBuild = durations.getOrDefault(TestProject.class.getSimpleName() + "Build", 0);
int gatherTestInformationBuild = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "Build", 0);
int checkoutPreviousBuild = durations.getOrDefault(CheckoutBuggyBuild.class.getSimpleName(), 0);
int buildProjectPreviousBuild = durations.getOrDefault(BuildProject.class.getSimpleName() + "PreviousBuild", 0);
int testProjectPreviousBuild = durations.getOrDefault(TestProject.class.getSimpleName() + "PreviousBuild", 0);
int gatherTestInformationPreviousBuild = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "PreviousBuild", 0);
int checkoutPreviousBuildSourceCode = durations.getOrDefault(CheckoutBuggyBuildSourceCode.class.getSimpleName(), 0);
int buildProjectPreviousBuildSourceCode = durations.getOrDefault(BuildProject.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int testProjectPreviousBuildSourceCode = durations.getOrDefault(TestProject.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int gatherTestInformationPreviousBuildSourceCode = durations.getOrDefault(GatherTestInformation.class.getSimpleName() + "PreviousBuildSourceCode", 0);
int pushBuild = durations.getOrDefault(PushIncriminatedBuild.class.getSimpleName(), 0);
int computeClasspath = durations.getOrDefault(ComputeClasspath.class.getSimpleName(), 0);
int dependencyResolution = durations.getOrDefault(ResolveDependency.class.getSimpleName(), 0);
int totalDuration = cloneRepository + checkoutBuild + buildProjectBuild + testProjectBuild + gatherTestInformationBuild + checkoutPreviousBuild + buildProjectPreviousBuild + testProjectPreviousBuild + gatherTestInformationPreviousBuild + checkoutPreviousBuildSourceCode + buildProjectPreviousBuildSourceCode + testProjectPreviousBuildSourceCode + gatherTestInformationPreviousBuildSourceCode + pushBuild + computeClasspath + dependencyResolution;
Build build = inspector.getPatchedBuild();
Build previousBuild = inspector.getBuggyBuild();
int previousBuildId = (previousBuild != null) ? previousBuild.getId() : -1;
List<Object> dataCol = new ArrayList<Object>();
dataCol.add(build.getId() + "");
dataCol.add(previousBuildId + "");
dataCol.add(build.getRepository().getSlug());
dataCol.add(Utils.getHostname());
dataCol.add(totalDuration);
dataCol.add(cloneRepository);
dataCol.add(checkoutBuild);
dataCol.add(buildProjectBuild);
dataCol.add(testProjectBuild);
dataCol.add(gatherTestInformationBuild);
dataCol.add(checkoutPreviousBuild);
dataCol.add(buildProjectPreviousBuild);
dataCol.add(testProjectPreviousBuild);
dataCol.add(gatherTestInformationPreviousBuild);
dataCol.add(checkoutPreviousBuildSourceCode);
dataCol.add(buildProjectPreviousBuildSourceCode);
dataCol.add(testProjectPreviousBuildSourceCode);
dataCol.add(gatherTestInformationPreviousBuildSourceCode);
dataCol.add(pushBuild);
dataCol.add(computeClasspath);
dataCol.add(dependencyResolution);
return dataCol;
}
Aggregations