Skip to content

DX: Trigger Build from TUI (branch, commit, message, env) #70

Description

@alexhraber

Problem

The Buildkite CLI (bk build create) can trigger new builds with custom parameters. builddeck can only observe and take actions on existing builds — there is no way to spawn a new build from the TUI.

Proposed Feature

Add a build creation overlay (e.g. keybinding Shift+B) that lets you fill in:

Field Pre-fill Notes
Pipeline Current selected pipeline Read-only in that context
Branch Git-tracked branch from $(git rev-parse --abbrev-ref HEAD) Editable
Commit HEAD SHA Editable
Message git log -1 --format=%s Editable, multiline
Environment Variables Empty key=value list Add/remove rows

UX

┌──────────────────────────────────────┐
│  Trigger Build                        │
│                                       │
│  Pipeline: my-org/my-pipeline         │
│  Branch:  [main                    ]  │
│  Commit:  [abc1234...              ]  │
│  Message: [Fix the thing           ]  │
│  ┌─── Env Vars ──────────────────┐   │
│  │ MY_VAR = value                │   │
│  │ DEBUG  = true                 │   │
│  │ [+ Add]                       │   │
│  └───────────────────────────────┘   │
│                                       │
│  [Cancel]  [Trigger Build →]         │
└──────────────────────────────────────┘

On submit: POST to Buildkite API → show confirmation in status bar → optionally auto-navigate to the new build.

Why this fits a TUI

  • Engineers frequently need to re-run with different parameters (different branch, debug flags)
  • The TUI already shows pipeline context — pre-filling from it removes friction
  • No browser needed to kick off a custom build

References

  • bk build create in buildkite/cli
  • Buildkite REST API: POST /v2/organizations/{org}/pipelines/{pipeline}/builds

Acceptance

  • Shift+B opens build creation overlay on center or right pane
  • Branch/commit/message pre-filled from local git when available
  • Env var rows are addable/removable
  • enter submits, esc cancels
  • Loading state while API processes
  • Success navigates to new build; failure shows error in status bar

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions