/** * Gets the signature of the last status */ @Override public Signature getSignature() { return getLastStatus().getSignature(); } }
@Override public Project getProject() { return getBuild().getProject(); }
public boolean isPassed() { return !validationRun.isEmpty() && validationRun.get(validationRun.size() - 1).isPassed(); }
public EventBuilder withValidationRun(ValidationRun validationRun) { return withBuild(validationRun.getBuild()).with(validationRun.getValidationStamp()).with(validationRun).with(validationRun.getLastStatus().getSignature()); }
@Override public ValidationRun newValidationRun(ValidationRun validationRun, Function<String, ValidationRunStatusID> validationRunStatusService) { // Validation run itself (parent) int id = dbCreate( "INSERT INTO VALIDATION_RUNS(BUILDID, VALIDATIONSTAMPID) VALUES (:buildId, :validationStampId)", params("buildId", validationRun.getBuild().id()) .addValue("validationStampId", validationRun.getValidationStamp().id()) ); // Data if (validationRun.getData() != null) { getNamedParameterJdbcTemplate().update( "INSERT INTO VALIDATION_RUN_DATA(VALIDATION_RUN, DATA_TYPE_ID, DATA) VALUES (:validationRunId, :dataTypeId, CAST(:data AS JSONB))", params("validationRunId", id) .addValue("dataTypeId", validationRun.getData().getDescriptor().getId()) .addValue("data", writeJson(validationRun.getData().getData())) ); } // Statuses validationRun.getValidationRunStatuses() .forEach(validationRunStatus -> newValidationRunStatus(id, validationRunStatus)); // Reloads the run return getValidationRun(ID.of(id), validationRunStatusService); }
public static ValidationRun of( Build build, ValidationStamp validationStamp, int runOrder, Signature signature, ValidationRunStatusID validationRunStatusID, String description) { List<ValidationRunStatus> statuses = Collections.singletonList( ValidationRunStatus.of( signature, validationRunStatusID, description ) ); return of(build, validationStamp, runOrder, statuses); }
public ValidationRun withId(ID id) { return new ValidationRun( id, build, validationStamp, runOrder, data, validationRunStatuses ); }
@NotNull @Override @JsonIgnore public Map<String, String> getRunMetricTags() { return ImmutableMap.of( "project", validationStamp.getBranch().getProject().getName(), "branch", validationStamp.getBranch().getName(), "validationStamp", validationStamp.getName(), "status", getLastStatusId() ); }
public static ValidationRun of(Build build, ValidationStamp validationStamp, int runOrder, List<ValidationRunStatus> statuses) { return new ValidationRun( ID.NONE, build, validationStamp, runOrder, null, statuses ); }
/** * Gets the last status of the last run, or <code>null</code> if no run has been performed. */ public ValidationRunStatus getLastStatus() { ValidationRun run = getLastRun(); if (run == null) { return null; } else { return run.getLastStatus(); } }
long notPassed = runs.stream().filter(run -> !run.isPassed()).count();
public ValidationRun add(ValidationRunStatus status) { List<ValidationRunStatus> statuses = new ArrayList<>(validationRunStatuses); statuses.add(0, status); return new ValidationRun( id, build, validationStamp, runOrder, data, Collections.unmodifiableList(statuses) ); }
public boolean isPassed() { return getLastStatus().isPassed(); }
private boolean isPassed(Build build, ValidationStamp validationStamp) { List<ValidationRun> runs = structureService.getValidationRunsForBuildAndValidationStamp( build.getId(), validationStamp.getId(), 0, 1 ); if (runs.isEmpty()) { return false; } else { ValidationRun run = runs.get(0); return Objects.equals( run.getLastStatus().getStatusID(), ValidationRunStatusID.STATUS_PASSED ); } }
@Override public Event newValidationRunStatus(ValidationRun validationRun) { return Event.of(NEW_VALIDATION_RUN_STATUS) .withValidationRun(validationRun) .withValidationRunStatus(validationRun.getLastStatus().getStatusID()) .get(); }
@Override public Event newValidationRun(ValidationRun validationRun) { return Event.of(NEW_VALIDATION_RUN) .withValidationRun(validationRun) .withValidationRunStatus(validationRun.getLastStatus().getStatusID()) .get(); }
private void onNewValidationRun(Event event) { // Passed validation? ValidationRun validationRun = event.getEntity(ProjectEntityType.VALIDATION_RUN); if (Objects.equals( validationRun.getLastStatus().getStatusID(), ValidationRunStatusID.STATUS_PASSED)) { // Branch Branch branch = event.getEntity(ProjectEntityType.BRANCH); // Build Build build = event.getEntity(ProjectEntityType.BUILD); // Gets all promotion levels for this branch List<PromotionLevel> promotionLevels = structureService.getPromotionLevelListForBranch(branch.getId()); // Gets all validation stamps for this branch List<ValidationStamp> validationStamps = structureService.getValidationStampListForBranch(branch.getId()); // Gets the promotion levels which have an auto promotion property promotionLevels.forEach(promotionLevel -> checkPromotionLevel(build, promotionLevel, validationStamps)); } }