diff --git a/buildbot_nix/__init__.py b/buildbot_nix/__init__.py index b795afe..fc58e34 100644 --- a/buildbot_nix/__init__.py +++ b/buildbot_nix/__init__.py @@ -259,8 +259,12 @@ def nix_eval_config( sshPrivateKey=gerrit_private_key ), ) + # use one gcroots directory per worker. this should be scoped to the largest unique resource + # in charge of builds (ie, buildnumber is too narrow) to not litter the system with permanent + # gcroots in case of worker restarts. + # TODO perhaps we should clean the entire /drvs/ directory up too during startup. drv_gcroots_dir = util.Interpolate( - "/nix/var/nix/gcroots/per-user/buildbot-worker/%(prop:project)s/drvs/", + "/nix/var/nix/gcroots/per-user/buildbot-worker/%(prop:project)s/drvs/%(prop:workername)s/", ) factory.addStep( @@ -297,6 +301,7 @@ def nix_eval_config( "-rf", drv_gcroots_dir, ], + alwaysRun=True, ), )