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