From cfc6f7f54b502f00b39202b607989299ed3b92e5 Mon Sep 17 00:00:00 2001 From: magic_rb Date: Mon, 17 Feb 2025 19:43:06 +0100 Subject: [PATCH 1/2] Emit statuses for effects --- buildbot_nix/buildbot_nix/__init__.py | 15 +++++++++++++++ buildbot_nix/buildbot_nix/nix_status_generator.py | 13 +++++++++++++ 2 files changed, 28 insertions(+) diff --git a/buildbot_nix/buildbot_nix/__init__.py b/buildbot_nix/buildbot_nix/__init__.py index 4fe1cde9c..1f7783106 100644 --- a/buildbot_nix/buildbot_nix/__init__.py +++ b/buildbot_nix/buildbot_nix/__init__.py @@ -99,6 +99,21 @@ def __init__( **kwargs, ) + async def run(self) -> int: # type: ignore[override] + if self.build: + await CombinedBuildEvent.produce_event_for_build( + self.master, CombinedBuildEvent.STARTED_NIX_EFFECTS, self.build, None + ) + + results = await super().run() + + if self.build: + await CombinedBuildEvent.produce_event_for_build( + self.master, CombinedBuildEvent.FINISHED_NIX_EFFECTS, self.build, None + ) + + return results + def createTriggerProperties(self, props: Any) -> Any: # noqa: N802 return props diff --git a/buildbot_nix/buildbot_nix/nix_status_generator.py b/buildbot_nix/buildbot_nix/nix_status_generator.py index 351275cec..1d9c02931 100644 --- a/buildbot_nix/buildbot_nix/nix_status_generator.py +++ b/buildbot_nix/buildbot_nix/nix_status_generator.py @@ -29,6 +29,8 @@ class CombinedBuildEvent(Enum): FINISHED_NIX_EVAL = "finished-nix-eval" STARTED_NIX_BUILD = "started-nix-build" FINISHED_NIX_BUILD = "finished-nix-build" + STARTED_NIX_EFFECTS = "started-nix-effects" + FINISHED_NIX_EFFECTS = "finished-nix-effects" @staticmethod async def produce_event_for_build_requests_by_id( @@ -88,6 +90,8 @@ class BuildNixEvalStatusGenerator(BuildStatusGeneratorMixin): ("builds", None, str(CombinedBuildEvent.FINISHED_NIX_EVAL.name)), ("builds", None, str(CombinedBuildEvent.STARTED_NIX_BUILD.name)), ("builds", None, str(CombinedBuildEvent.FINISHED_NIX_BUILD.name)), + ("builds", None, str(CombinedBuildEvent.STARTED_NIX_EFFECTS.name)), + ("builds", None, str(CombinedBuildEvent.FINISHED_NIX_EFFECTS.name)), ("buildrequests", None, str(CombinedBuildEvent.STARTED_NIX_BUILD.name)), ("buildrequests", None, str(CombinedBuildEvent.FINISHED_NIX_BUILD.name)), ] @@ -223,6 +227,14 @@ async def generate( "nix-build", "generator", ) + case ( + CombinedBuildEvent.STARTED_NIX_EFFECTS + | CombinedBuildEvent.FINISHED_NIX_EFFECTS + ): + report["builds"][0]["properties"]["status_name"] = ( + "nix-effects", + "generator", + ) case _: msg = f"Unexpected event: {event_typed}" raise ValueError(msg) @@ -231,6 +243,7 @@ async def generate( case ( CombinedBuildEvent.FINISHED_NIX_EVAL | CombinedBuildEvent.FINISHED_NIX_BUILD + | CombinedBuildEvent.FINISHED_NIX_EFFECTS ): report["builds"][0]["complete"] = True report["builds"][0]["complete_at"] = datetime.now(tz=UTC) From d728dbd76e5d2c2f0d67959af93a64b707efc44d Mon Sep 17 00:00:00 2001 From: magic_rb Date: Mon, 17 Feb 2025 21:02:07 +0100 Subject: [PATCH 2/2] Respect debug in `buildbot-effects` and running `bwrap` --- buildbot_effects/buildbot_effects/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildbot_effects/buildbot_effects/cli.py b/buildbot_effects/buildbot_effects/cli.py index 8ce5bb75a..1c349da4e 100644 --- a/buildbot_effects/buildbot_effects/cli.py +++ b/buildbot_effects/buildbot_effects/cli.py @@ -21,7 +21,7 @@ def run_command(args: argparse.Namespace, options: EffectsOptions) -> None: drv = next(iter(drvs.values())) secrets = json.loads(options.secrets.read_text()) if options.secrets else {} - run_effects(drv_path, drv, secrets=secrets) + run_effects(drv_path, drv, secrets=secrets, debug=args.debug) def run_all_command(args: argparse.Namespace, options: EffectsOptions) -> None: