@@ -360,52 +360,46 @@ export class Runner {
360
360
361
361
// onStatusUpdate only updates status' for landrequests, never moves a state and always exits early
362
362
onStatusUpdate = async ( statusEvent : BB . BuildStatusEvent ) => {
363
- const running = await this . getRunning ( ) ;
364
- if ( ! running . length ) {
365
- Logger . info ( 'No builds running, status event is irrelevant' , {
363
+ const requests = await this . getRunning ( ) ;
364
+ const landRequestStatus = requests . find (
365
+ ( { state, request } ) => state === 'running' && request . buildId === statusEvent . buildId ,
366
+ ) ;
367
+
368
+ const landRequest = landRequestStatus ?. request ;
369
+
370
+ if ( ! landRequest ) {
371
+ Logger . info ( 'No running build for status event, ignoring' , {
366
372
namespace : 'lib:runner:onStatusUpdate' ,
367
373
statusEvent,
368
374
} ) ;
369
375
return ;
370
376
}
371
- for ( const landRequestStatus of running ) {
372
- const landRequest = landRequestStatus . request ;
373
- if ( statusEvent . buildId !== landRequest . buildId ) continue ; // check next landRequest
374
- switch ( statusEvent . buildStatus ) {
375
- case 'SUCCESSFUL' :
376
- Logger . info ( 'Moving landRequest to awaiting-merge state' , {
377
- namespace : 'lib:runner:onStatusUpdate' ,
378
- landRequestId : landRequest . id ,
379
- pullRequestId : landRequest . pullRequestId ,
380
- landRequestStatus,
381
- } ) ;
382
- await landRequest . setStatus ( 'awaiting-merge' ) ;
383
- return this . next ( ) ;
384
- case 'FAILED' :
385
- Logger . info ( 'Moving landRequest to failed state' , {
386
- namespace : 'lib:runner:onStatusUpdate' ,
387
- landRequestId : landRequest . id ,
388
- pullRequestId : landRequest . pullRequestId ,
389
- landRequestStatus,
390
- } ) ;
391
- await landRequest . setStatus ( 'fail' , 'Landkid build failed' ) ;
392
- return this . next ( ) ;
393
- case 'STOPPED' :
394
- Logger . info ( 'Moving landRequest to aborted state' , {
395
- namespace : 'lib:runner:onStatusUpdate' ,
396
- landRequestId : landRequest . id ,
397
- pullRequestId : landRequest . pullRequestId ,
398
- landRequestStatus,
399
- } ) ;
400
- await landRequest . setStatus ( 'aborted' , 'Landkid pipelines build was stopped' ) ;
401
- return this . next ( ) ;
402
- default :
403
- Logger . info ( 'Dont know what to do with build status, ignoring' , {
404
- namespace : 'lib:runner:onStatusUpdate' ,
405
- statusEvent,
406
- } ) ;
407
- break ;
408
- }
377
+
378
+ const logMessage = ( message : string ) =>
379
+ Logger . info ( message , {
380
+ namespace : 'lib:runner:onStatusUpdate' ,
381
+ landRequestId : landRequest . id ,
382
+ pullRequestId : landRequest . pullRequestId ,
383
+ landRequestStatus,
384
+ statusEvent,
385
+ } ) ;
386
+
387
+ switch ( statusEvent . buildStatus ) {
388
+ case 'SUCCESSFUL' :
389
+ logMessage ( 'Moving landRequest to awaiting-merge state' ) ;
390
+ await landRequest . setStatus ( 'awaiting-merge' ) ;
391
+ return this . next ( ) ;
392
+ case 'FAILED' :
393
+ logMessage ( 'Moving landRequest to failed state' ) ;
394
+ await landRequest . setStatus ( 'fail' , 'Landkid build failed' ) ;
395
+ return this . next ( ) ;
396
+ case 'STOPPED' :
397
+ logMessage ( 'Moving landRequest to aborted state' ) ;
398
+ await landRequest . setStatus ( 'aborted' , 'Landkid pipelines build was stopped' ) ;
399
+ return this . next ( ) ;
400
+ default :
401
+ logMessage ( 'Dont know what to do with build status, ignoring' ) ;
402
+ break ;
409
403
}
410
404
} ;
411
405
0 commit comments