From 52f0948c7e7ec3f55e1c129ce79b61315de3cd6d Mon Sep 17 00:00:00 2001 From: JoelTowell Date: Sat, 15 Aug 2026 01:26:00 +1000 Subject: [PATCH 1/2] Hide conditionally excluded jobs from bk build watch --- cmd/build/watch.go | 12 ++++++++++++ cmd/build/watch_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 cmd/build/watch_test.go diff --git a/cmd/build/watch.go b/cmd/build/watch.go index 3549ec25..72e54b32 100644 --- a/cmd/build/watch.go +++ b/cmd/build/watch.go @@ -107,6 +107,7 @@ func (c *WatchCmd) Run(kongCtx *kong.Context, globals cli.GlobalFlags) error { interval := time.Duration(c.Interval) * time.Second _, err = watch.WatchBuild(ctx, f.RestAPIClient, bld.Organization, bld.Pipeline, bld.BuildNumber, interval, func(b buildkite.Build) error { + b.Jobs = watchJobs(b.Jobs) summary := shared.BuildSummaryWithJobs(&b, bld.Organization, bld.Pipeline) if tty { fmt.Print("\033[H\033[2J") @@ -122,3 +123,14 @@ func (c *WatchCmd) Run(kongCtx *kong.Context, globals cli.GlobalFlags) error { return err } + +func watchJobs(jobs []buildkite.Job) []buildkite.Job { + out := make([]buildkite.Job, 0, len(jobs)) + for _, j := range jobs { + if j.State == "broken" { + continue + } + out = append(out, j) + } + return out +} \ No newline at end of file diff --git a/cmd/build/watch_test.go b/cmd/build/watch_test.go new file mode 100644 index 00000000..20d76dd4 --- /dev/null +++ b/cmd/build/watch_test.go @@ -0,0 +1,30 @@ +package build + +import ( + "slices" + "testing" + + buildkite "github.com/buildkite/go-buildkite/v5" +) + +func TestWatchJobs(t *testing.T) { + got := watchJobs([]buildkite.Job{ + {State: "passed"}, + {State: "broken"}, + {State: "skipped"}, + {State: "failed"}, + {State: "waiting_failed"}, + }) + want := []buildkite.Job{ + {State: "passed"}, + {State: "skipped"}, + {State: "failed"}, + {State: "waiting_failed"}, + } + + if !slices.EqualFunc(got, want, func(a, b buildkite.Job) bool { + return a.State == b.State + }) { + t.Fatalf("got %+v, want %+v", got, want) + } +} \ No newline at end of file From cd4fba98dc13cadc842cfeb992ffe691e1829793 Mon Sep 17 00:00:00 2001 From: JoelTowell Date: Mon, 17 Aug 2026 09:42:14 +1000 Subject: [PATCH 2/2] lint --- cmd/build/watch.go | 10 +++++----- cmd/build/watch_test.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmd/build/watch.go b/cmd/build/watch.go index 72e54b32..1bba0d71 100644 --- a/cmd/build/watch.go +++ b/cmd/build/watch.go @@ -127,10 +127,10 @@ func (c *WatchCmd) Run(kongCtx *kong.Context, globals cli.GlobalFlags) error { func watchJobs(jobs []buildkite.Job) []buildkite.Job { out := make([]buildkite.Job, 0, len(jobs)) for _, j := range jobs { - if j.State == "broken" { - continue - } - out = append(out, j) + if j.State == "broken" { + continue + } + out = append(out, j) } return out -} \ No newline at end of file +} diff --git a/cmd/build/watch_test.go b/cmd/build/watch_test.go index 20d76dd4..f396abe8 100644 --- a/cmd/build/watch_test.go +++ b/cmd/build/watch_test.go @@ -27,4 +27,4 @@ func TestWatchJobs(t *testing.T) { }) { t.Fatalf("got %+v, want %+v", got, want) } -} \ No newline at end of file +}