@@ -348,16 +348,20 @@ async def run(self) -> int:
348
348
msg .append (f" failed build: { url } " )
349
349
error_log .addStderr ("\n " .join (msg ) + "\n " )
350
350
return util .FAILURE
351
- self .build .addStepsAfterCurrentStep (
352
- nix_build_steps (
353
- self .project ,
354
- self .worker_names ,
355
- self .post_build_steps ,
356
- self .branch_config_dict ,
357
- self .outputs_path ,
358
- self .show_trace ,
351
+ self .build .addStepsAfterCurrentStep ([
352
+ Trigger (
353
+ name = "Rebuild cached failure" ,
354
+ waitForFinish = True ,
355
+ schedulerNames = [f"{ self .project .project_id } -rebuild" ],
356
+ haltOnFailure = True ,
357
+ flunkOnFailure = True ,
358
+ sourceStamps = [],
359
+ alwaysUseLatest = False ,
360
+ updateSourceStamp = False ,
361
+ copy_properties = ["attr" , "system" , "branch" , "revision" ],
362
+ set_properties = {"reason" : "rebuild" },
359
363
)
360
- )
364
+ ] )
361
365
return util .SUCCESS
362
366
363
367
@@ -1075,6 +1079,11 @@ def config_for_project(
1075
1079
name = f"{ project .project_id } -nix-register-gcroot" ,
1076
1080
builderNames = [f"{ project .name } /nix-register-gcroot" ],
1077
1081
),
1082
+ # this is triggered from cached failure rebuilds
1083
+ schedulers .Triggerable (
1084
+ name = f"{ project .project_id } -rebuild" ,
1085
+ builderNames = [f"{ project .name } /nix-eval" ],
1086
+ ),
1078
1087
# allow to manually trigger a nix-build
1079
1088
schedulers .ForceScheduler (
1080
1089
name = f"{ project .project_id } -force" ,
0 commit comments