@@ -374,18 +374,18 @@ def run(
374
374
try :
375
375
if docker is None :
376
376
docker = settings .DOCKER_ENABLE
377
-
378
377
self .project = self .get_project (pk )
379
378
self .version = self .get_version (self .project , version_pk )
380
379
self .build = self .get_build (build_pk )
381
380
self .build_force = force
382
381
self .config = None
383
382
383
+ # Build process starts here
384
384
setup_successful = self .run_setup (record = record )
385
385
if not setup_successful :
386
386
return False
387
-
388
- # Catch unhandled errors in the setup step
387
+ self . run_build ( docker = docker , record = record )
388
+ return True
389
389
except Exception :
390
390
log .exception (
391
391
'An unhandled exception was raised during build setup' ,
@@ -401,7 +401,17 @@ def run(
401
401
},
402
402
},
403
403
)
404
- if self .setup_env is not None :
404
+ # We should check first for build_env.
405
+ # If isn't None, it means that something got wrong
406
+ # in the second step (`self.run_build`)
407
+ if self .build_env is not None :
408
+ self .build_env .failure = BuildEnvironmentError (
409
+ BuildEnvironmentError .GENERIC_WITH_BUILD_ID .format (
410
+ build_id = build_pk ,
411
+ ),
412
+ )
413
+ self .build_env .update_build (BUILD_STATE_FINISHED )
414
+ elif self .setup_env is not None :
405
415
self .setup_env .failure = BuildEnvironmentError (
406
416
BuildEnvironmentError .GENERIC_WITH_BUILD_ID .format (
407
417
build_id = build_pk ,
@@ -412,36 +422,6 @@ def run(
412
422
# Send notifications for unhandled errors
413
423
self .send_notifications (version_pk , build_pk )
414
424
return False
415
- else :
416
- # No exceptions in the setup step, catch unhandled errors in the
417
- # build steps
418
- try :
419
- self .run_build (docker = docker , record = record )
420
- except Exception :
421
- log .exception (
422
- 'An unhandled exception was raised during project build' ,
423
- extra = {
424
- 'stack' : True ,
425
- 'tags' : {
426
- 'build' : build_pk ,
427
- 'project' : self .project .slug ,
428
- 'version' : self .version .slug ,
429
- },
430
- },
431
- )
432
- if self .build_env is not None :
433
- self .build_env .failure = BuildEnvironmentError (
434
- BuildEnvironmentError .GENERIC_WITH_BUILD_ID .format (
435
- build_id = build_pk ,
436
- ),
437
- )
438
- self .build_env .update_build (BUILD_STATE_FINISHED )
439
-
440
- # Send notifications for unhandled errors
441
- self .send_notifications (version_pk , build_pk )
442
- return False
443
-
444
- return True
445
425
446
426
def run_setup (self , record = True ):
447
427
"""
0 commit comments