Skip to content

Commit 5ed0f7d

Browse files
authored
Correctly detect failed pipeline (#192)
1 parent fccbc63 commit 5ed0f7d

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

server/src/MergeRequestAcceptor.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -299,16 +299,15 @@ export const acceptMergeRequest = async (
299299
};
300300
}
301301

302+
// the latest pipeline is incomplete / has failed
302303
if (
303-
[DetailedMergeStatus.CiMustPass, DetailedMergeStatus.CiStillRunning].includes(
304-
mergeRequestInfo.detailed_merge_status,
305-
)
304+
mergeRequestInfo.head_pipeline !== null &&
305+
incompletePipelineStatuses.includes(mergeRequestInfo.head_pipeline.status)
306306
) {
307307
return {
308-
kind: AcceptMergeRequestResultKind.PipelineInProgress,
308+
kind: AcceptMergeRequestResultKind.CanNotBeMerged,
309309
mergeRequestInfo,
310310
user,
311-
pipeline: mergeRequestInfo.head_pipeline,
312311
};
313312
}
314313

@@ -324,6 +323,19 @@ export const acceptMergeRequest = async (
324323
};
325324
}
326325

326+
if (
327+
[DetailedMergeStatus.CiMustPass, DetailedMergeStatus.CiStillRunning].includes(
328+
mergeRequestInfo.detailed_merge_status,
329+
)
330+
) {
331+
return {
332+
kind: AcceptMergeRequestResultKind.PipelineInProgress,
333+
mergeRequestInfo,
334+
user,
335+
pipeline: mergeRequestInfo.head_pipeline,
336+
};
337+
}
338+
327339
const useSquash = mergeRequestInfo.labels.includes(config.SKIP_SQUASHING_LABEL)
328340
? false
329341
: config.SQUASH_MERGE_REQUEST;
@@ -506,6 +518,14 @@ export const runAcceptingMergeRequest = async (
506518
}
507519

508520
const currentPipeline = mergeRequestInfo.head_pipeline;
521+
if (currentPipeline !== null && currentPipeline.status === PipelineStatus.Failed) {
522+
return {
523+
kind: AcceptMergeRequestResultKind.FailedPipeline,
524+
mergeRequestInfo,
525+
user,
526+
pipeline: currentPipeline,
527+
};
528+
}
509529

510530
if (
511531
currentPipeline !== null &&
@@ -618,15 +638,6 @@ export const runAcceptingMergeRequest = async (
618638
return;
619639
}
620640

621-
if (currentPipeline.status === PipelineStatus.Failed) {
622-
return {
623-
kind: AcceptMergeRequestResultKind.FailedPipeline,
624-
mergeRequestInfo,
625-
user,
626-
pipeline: currentPipeline,
627-
};
628-
}
629-
630641
if (
631642
currentPipeline.status !== PipelineStatus.Success &&
632643
currentPipeline.status !== PipelineStatus.Skipped &&

0 commit comments

Comments
 (0)