@@ -354,14 +354,20 @@ async def run(self) -> int:
354
354
error_log .addStderr ("\n " .join (msg ) + "\n " )
355
355
return util .FAILURE
356
356
self .build .addStepsAfterCurrentStep (
357
- nix_build_steps (
358
- self .project ,
359
- self .worker_names ,
360
- self .post_build_steps ,
361
- self .branch_config_dict ,
362
- self .outputs_path ,
363
- self .show_trace ,
364
- )
357
+ [
358
+ Trigger (
359
+ name = "Rebuild cached failure" ,
360
+ waitForFinish = True ,
361
+ schedulerNames = [f"{ self .project .project_id } -rebuild" ],
362
+ haltOnFailure = True ,
363
+ flunkOnFailure = True ,
364
+ sourceStamps = [],
365
+ alwaysUseLatest = False ,
366
+ updateSourceStamp = False ,
367
+ copy_properties = ["attr" , "system" , "branch" , "revision" ],
368
+ set_properties = {"reason" : "rebuild" },
369
+ )
370
+ ]
365
371
)
366
372
return util .SUCCESS
367
373
@@ -1088,6 +1094,11 @@ def config_for_project(
1088
1094
name = f"{ project .project_id } -nix-register-gcroot" ,
1089
1095
builderNames = [f"{ project .name } /nix-register-gcroot" ],
1090
1096
),
1097
+ # this is triggered from cached failure rebuilds
1098
+ schedulers .Triggerable (
1099
+ name = f"{ project .project_id } -rebuild" ,
1100
+ builderNames = [f"{ project .name } /nix-eval" ],
1101
+ ),
1091
1102
# allow to manually trigger a nix-build
1092
1103
schedulers .ForceScheduler (
1093
1104
name = f"{ project .project_id } -force" ,
0 commit comments