From f221ab324e64fa60d80afec8622e84fc9c5589c5 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Mon, 6 May 2024 19:37:46 +0200 Subject: [PATCH] chore(web): remove `outputsPath` option It was relying on GitHub stuff which we don't have and is not an option we want to support. If we wanted to do it, we would rather use S3 directly. Signed-off-by: Raito Bezarius --- buildbot_nix/__init__.py | 41 +--------------------------------------- nix/coordinator.nix | 14 -------------- 2 files changed, 1 insertion(+), 54 deletions(-) diff --git a/buildbot_nix/__init__.py b/buildbot_nix/__init__.py index 4c9251e..5835585 100644 --- a/buildbot_nix/__init__.py +++ b/buildbot_nix/__init__.py @@ -394,30 +394,6 @@ class NixBuildCommand(buildstep.ShellMixin, steps.BuildStep): return cmd.results() -class UpdateBuildOutput(steps.BuildStep): - """Updates store paths in a public www directory. - This is useful to prefetch updates without having to evaluate - on the target machine. - """ - - def __init__(self, path: Path, **kwargs: Any) -> None: - super().__init__(**kwargs) - self.path = path - - def run(self) -> Generator[Any, object, Any]: - props = self.build.getProperties() - if props.getProperty("branch") != props.getProperty( - "github.repository.default_branch", - ): - return util.SKIPPED - - attr = Path(props.getProperty("attr")).name - out_path = props.getProperty("out_path") - # XXX don't hardcode this - self.path.mkdir(parents=True, exist_ok=True) - (self.path / attr).write_text(out_path) - return util.SUCCESS - def nix_eval_config( project: GerritProject, @@ -501,7 +477,6 @@ def nix_build_config( project: GerritProject, worker_arch: str, worker_names: list[str], - outputs_path: Path | None = None, signing_keyfile: str | None = None, binary_cache_config: S3BinaryCacheConfig | None = None ) -> util.BuilderConfig: @@ -592,13 +567,7 @@ def nix_build_config( command=["rm", "-f", util.Interpolate("result-%(prop:attr)s")], ), ) - if outputs_path is not None: - factory.addStep( - UpdateBuildOutput( - name="Update build output", - path=outputs_path, - ), - ) + return util.BuilderConfig( name=f"{project.name}/nix-build/{worker_arch}", project=project.name, @@ -626,7 +595,6 @@ def config_for_project( nix_eval_worker_count: int, nix_eval_max_memory_size: int, eval_lock: util.MasterLock, - outputs_path: Path | None = None, signing_keyfile: str | None = None, binary_cache_config: S3BinaryCacheConfig | None = None ) -> Project: @@ -689,7 +657,6 @@ def config_for_project( project, arch, [ f"{w}-{arch}" for w in worker_names ], - outputs_path=outputs_path, signing_keyfile=signing_keyfile, binary_cache_config=binary_cache_config ) @@ -796,7 +763,6 @@ class GerritNixConfigurator(ConfiguratorBase): nix_workers_secret_name: str = "buildbot-nix-workers", # noqa: S107 signing_keyfile: str | None = None, binary_cache_config: dict[str, str] | None = None, - outputs_path: str | None = None, ) -> None: super().__init__() self.gerrit_server = gerrit_server @@ -813,10 +779,6 @@ class GerritNixConfigurator(ConfiguratorBase): else: self.binary_cache_config = None self.signing_keyfile = signing_keyfile - if outputs_path is None: - self.outputs_path = None - else: - self.outputs_path = Path(outputs_path) def configure(self, config: dict[str, Any]) -> None: worker_config = json.loads(read_secret_file(self.nix_workers_secret_name)) @@ -845,7 +807,6 @@ class GerritNixConfigurator(ConfiguratorBase): self.nix_eval_worker_count or multiprocessing.cpu_count(), self.nix_eval_max_memory_size, eval_lock, - self.outputs_path, signing_keyfile=self.signing_keyfile, binary_cache_config=self.binary_cache_config ) diff --git a/nix/coordinator.nix b/nix/coordinator.nix index 434816a..4888d2a 100644 --- a/nix/coordinator.nix +++ b/nix/coordinator.nix @@ -51,13 +51,6 @@ in example = "buildbot.numtide.com"; }; - outputsPath = lib.mkOption { - type = lib.types.nullOr lib.types.path; - description = "Path where we store the latest build store paths names for nix attributes as text files. This path will be exposed via nginx at \${domain}/nix-outputs"; - default = null; - example = "/var/www/buildbot/nix-outputs"; - }; - signingKeyFile = lib.mkOption { type = lib.types.nullOr lib.types.path; description = "A path to a Nix signing key"; @@ -159,7 +152,6 @@ in nix_eval_max_memory_size=${builtins.toJSON cfg.evalMaxMemorySize}, nix_eval_worker_count=${if cfg.evalWorkerCount == null then "None" else builtins.toString cfg.evalWorkerCount}, nix_supported_systems=${builtins.toJSON cfg.buildSystems}, - outputs_path=${if cfg.outputsPath == null then "None" else builtins.toJSON cfg.outputsPath}, # Signing key file must be available on the workers and readable. signing_keyfile=${if cfg.signingKeyFile == null then "None" else builtins.toJSON cfg.signingKeyFile}, binary_cache_config=${if (!cfg.binaryCache.enable) then "None" else builtins.toJSON { @@ -241,13 +233,7 @@ in # raise the proxy timeout for the websocket extraConfig = "proxy_read_timeout 6000s;"; }; - } // lib.optionalAttrs (cfg.outputsPath != null) { - "/nix-outputs".root = cfg.outputsPath; }; }; - - systemd.tmpfiles.rules = lib.optional (cfg.outputsPath != null) - # Allow buildbot-coordinator to write to this directory - "d ${cfg.outputsPath} 0755 buildbot buildbot - -"; }; }