@@ -494,10 +494,6 @@ export const runAcceptingMergeRequest = async (
494494 await tryCancelPipeline ( gitlabApi , mergeRequestInfo , user ) ;
495495 await gitlabApi . rebaseMergeRequest ( mergeRequestInfo . project_id , mergeRequestInfo . iid ) ;
496496 job . updateStatus ( JobStatus . REBASING ) ;
497- job . updateState ( ( state ) => ( {
498- ...state ,
499- checkManualJobs : true ,
500- } ) ) ;
501497 return ;
502498 }
503499
@@ -513,50 +509,47 @@ export const runAcceptingMergeRequest = async (
513509 return ;
514510 }
515511
516- if ( job . state . checkManualJobs ) {
517- job . updateState ( ( state ) => ( {
518- ...state ,
519- checkManualJobs : false ,
520- } ) ) ;
521- const currentPipeline = mergeRequestInfo . head_pipeline ;
522- if ( currentPipeline !== null ) {
523- const jobs = uniqueNamedJobsByDate (
524- await gitlabApi . getPipelineJobs ( mergeRequestInfo . project_id , currentPipeline . id ) ,
525- ) ;
512+ const currentPipeline = mergeRequestInfo . head_pipeline ;
526513
527- const manualJobsToRun = jobs . filter (
528- ( job ) => PipelineJobStatus . Manual === job . status && ! job . allow_failure ,
529- ) ;
530- const canceledJobsToRun = jobs . filter (
531- ( job ) => PipelineJobStatus . Canceled === job . status && ! job . allow_failure ,
532- ) ;
514+ if (
515+ currentPipeline !== null &&
516+ mergeRequestInfo . detailed_merge_status === DetailedMergeStatus . CiMustPass &&
517+ [ PipelineStatus . Manual , PipelineStatus . Canceled ] . includes ( currentPipeline . status )
518+ ) {
519+ const jobs = uniqueNamedJobsByDate (
520+ await gitlabApi . getPipelineJobs ( mergeRequestInfo . project_id , currentPipeline . id ) ,
521+ ) ;
533522
534- if ( manualJobsToRun . length > 0 || canceledJobsToRun . length > 0 ) {
535- if ( ! config . AUTORUN_MANUAL_BLOCKING_JOBS ) {
536- return {
537- kind : AcceptMergeRequestResultKind . WaitingPipeline ,
538- mergeRequestInfo,
539- user,
540- pipeline : currentPipeline ,
541- } ;
542- }
543-
544- console . log (
545- `[MR][${ mergeRequestInfo . iid } ] there are some blocking manual or canceled. triggering again` ,
546- ) ;
547- job . updateStatus ( JobStatus . WAITING_FOR_CI ) ;
548- await Promise . all (
549- manualJobsToRun . map ( ( job ) =>
550- gitlabApi . runJob ( mergeRequestInfo . project_id , job . id ) ,
551- ) ,
552- ) ;
553- await Promise . all (
554- canceledJobsToRun . map ( ( job ) =>
555- gitlabApi . retryJob ( mergeRequestInfo . project_id , job . id ) ,
556- ) ,
557- ) ;
558- return ;
523+ const manualJobsToRun = jobs . filter (
524+ ( job ) => PipelineJobStatus . Manual === job . status && ! job . allow_failure ,
525+ ) ;
526+ const canceledJobsToRun = jobs . filter (
527+ ( job ) => PipelineJobStatus . Canceled === job . status && ! job . allow_failure ,
528+ ) ;
529+
530+ if ( manualJobsToRun . length > 0 || canceledJobsToRun . length > 0 ) {
531+ if ( ! config . AUTORUN_MANUAL_BLOCKING_JOBS ) {
532+ return {
533+ kind : AcceptMergeRequestResultKind . WaitingPipeline ,
534+ mergeRequestInfo,
535+ user,
536+ pipeline : currentPipeline ,
537+ } ;
559538 }
539+
540+ console . log (
541+ `[MR][${ mergeRequestInfo . iid } ] there are some blocking manual or canceled. triggering again` ,
542+ ) ;
543+ job . updateStatus ( JobStatus . WAITING_FOR_CI ) ;
544+ await Promise . all (
545+ manualJobsToRun . map ( ( job ) => gitlabApi . runJob ( mergeRequestInfo . project_id , job . id ) ) ,
546+ ) ;
547+ await Promise . all (
548+ canceledJobsToRun . map ( ( job ) =>
549+ gitlabApi . retryJob ( mergeRequestInfo . project_id , job . id ) ,
550+ ) ,
551+ ) ;
552+ return ;
560553 }
561554 }
562555
@@ -589,7 +582,6 @@ export const runAcceptingMergeRequest = async (
589582 } ;
590583 }
591584
592- const currentPipeline : MergeRequestPipeline | null = mergeRequestInfo . head_pipeline ;
593585 if ( currentPipeline === null ) {
594586 console . log (
595587 `[MR][${ mergeRequestInfo . iid } ] Merge request can't be merged. Pipeline does not exist` ,
@@ -626,44 +618,6 @@ export const runAcceptingMergeRequest = async (
626618 } ;
627619 }
628620
629- if ( [ PipelineStatus . Manual , PipelineStatus . Canceled ] . includes ( currentPipeline . status ) ) {
630- if ( ! config . AUTORUN_MANUAL_BLOCKING_JOBS ) {
631- return {
632- kind : AcceptMergeRequestResultKind . WaitingPipeline ,
633- mergeRequestInfo,
634- user,
635- pipeline : currentPipeline ,
636- } ;
637- }
638-
639- const jobs = uniqueNamedJobsByDate (
640- await gitlabApi . getPipelineJobs ( mergeRequestInfo . project_id , currentPipeline . id ) ,
641- ) ;
642-
643- const manualJobsToRun = jobs . filter (
644- ( job ) => PipelineJobStatus . Manual === job . status && ! job . allow_failure ,
645- ) ;
646- const canceledJobsToRun = jobs . filter (
647- ( job ) => PipelineJobStatus . Canceled === job . status && ! job . allow_failure ,
648- ) ;
649-
650- if ( manualJobsToRun . length > 0 || canceledJobsToRun . length > 0 ) {
651- console . log (
652- `[MR][${ mergeRequestInfo . iid } ] there are some blocking manual or canceled. triggering again` ,
653- ) ;
654- job . updateStatus ( JobStatus . WAITING_FOR_CI ) ;
655- await Promise . all (
656- manualJobsToRun . map ( ( job ) => gitlabApi . runJob ( mergeRequestInfo . project_id , job . id ) ) ,
657- ) ;
658- await Promise . all (
659- canceledJobsToRun . map ( ( job ) =>
660- gitlabApi . retryJob ( mergeRequestInfo . project_id , job . id ) ,
661- ) ,
662- ) ;
663- return ;
664- }
665- }
666-
667621 if (
668622 currentPipeline . status !== PipelineStatus . Success &&
669623 currentPipeline . status !== PipelineStatus . Skipped &&
0 commit comments