diff --git a/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/EtagBuilder.java b/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/EtagBuilder.java index 72574f141..01ef3e664 100644 --- a/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/EtagBuilder.java +++ b/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/EtagBuilder.java @@ -14,7 +14,7 @@ public class EtagBuilder { public EtagBuilder add(PipelineRun run) { checkAlreadyComputed(); - if (run.result.isInProgress()) { + if (run.isBuilding()) { producer = NOOP; // If we have an in-progress run, we cannot produce a valid ETag } else { producer.consume(run); diff --git a/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRun.java b/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRun.java index d95e3c12e..71d8f0032 100644 --- a/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRun.java +++ b/src/main/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRun.java @@ -20,6 +20,7 @@ public class PipelineRun { private final long timestamp; private final long duration; private final int changesCount; + private final boolean building; @NonNull final PipelineState result; @@ -31,7 +32,8 @@ public PipelineRun(WorkflowRun run) { run.getTimeInMillis(), run.getDuration(), getChanges(run).size(), - PipelineState.of(run)); + PipelineState.of(run), + run.isBuilding()); } PipelineRun( @@ -40,13 +42,19 @@ public PipelineRun(WorkflowRun run) { long timestamp, long duration, int changesCount, - @NonNull PipelineState result) { + @NonNull PipelineState result, + boolean building) { this.id = id; this.displayName = displayName; this.timestamp = timestamp; this.duration = duration; this.changesCount = changesCount; this.result = result; + this.building = building; + } + + public boolean isBuilding() { + return building; } public String etag() { diff --git a/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineState.java b/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineState.java index 2603ab99e..ecbf0b883 100644 --- a/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineState.java +++ b/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineState.java @@ -37,7 +37,7 @@ public static PipelineState of(WorkflowRun run) { return NOT_BUILT; } else if (result == Result.ABORTED) { return ABORTED; - } else if (run.isInProgress()) { + } else if (run.isBuilding()) { return RUNNING; } else { return UNKNOWN; diff --git a/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineStepApi.java b/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineStepApi.java index a4fb28dcc..1c932da7e 100644 --- a/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineStepApi.java +++ b/src/main/java/io/jenkins/plugins/pipelinegraphview/utils/PipelineStepApi.java @@ -101,15 +101,15 @@ private PipelineStepList getAllSteps(PipelineStepBuilderApi builder, boolean run } public PipelineStepList getSteps(String stageId) { - // Look up completed state before computing steps. - boolean runIsComplete = !PipelineState.of(run).isInProgress(); + // Look up the completed state before computing steps. + boolean runIsComplete = !run.isBuilding(); return getSteps(stageId, CachedPipelineNodeGraphAdaptor.instance.getFor(run), runIsComplete); } /* Returns a PipelineStepList, sorted by stageId and Id. */ public PipelineStepList getAllSteps() { - // Look up completed state before computing steps. - boolean runIsComplete = !PipelineState.of(run).isInProgress(); + // Look up the completed state before computing steps. + boolean runIsComplete = !run.isBuilding(); return getAllSteps(CachedPipelineNodeGraphAdaptor.instance.getFor(run), runIsComplete); } } diff --git a/src/test/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRunFactory.java b/src/test/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRunFactory.java index de18f07d6..277a4ce32 100644 --- a/src/test/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRunFactory.java +++ b/src/test/java/io/jenkins/plugins/pipelinegraphview/multipipelinegraphview/PipelineRunFactory.java @@ -12,11 +12,11 @@ public PipelineRunFactory(Clock clock) { } public PipelineRun succeeded(String id) { - return new PipelineRun(id, "Build " + id, currentTimeMillis(), 5_000, 3, PipelineState.SUCCESS); + return new PipelineRun(id, "Build " + id, currentTimeMillis(), 5_000, 3, PipelineState.SUCCESS, false); } public PipelineRun inProgress(String id) { - return new PipelineRun(id, "Build " + id, currentTimeMillis(), 0, 0, PipelineState.RUNNING); + return new PipelineRun(id, "Build " + id, currentTimeMillis(), 0, 0, PipelineState.RUNNING, true); } private long currentTimeMillis() {