Problem
The Buildkite CLI can validate pipeline YAML files (bk pipeline validate), but builddeck provides no way to quickly check if a .buildkite/pipeline.yml is valid. Users who edit their pipeline config have to switch to the CLI or push and wait for Buildkite to reject it.
Proposed Feature
Add a pipeline validation action accessible from the pipelines list pane. When a pipeline is highlighted, pressing a key (e.g. v) reads the local .buildkite/pipeline.yml (if one exists relative to CWD or the repo root) and validates it against the Buildkite API.
UX
- Focus left pane (pipelines list)
- Highlight a pipeline
- Press
v
- If
.buildkite/pipeline.yml is found:
- Reads file content
- Sends to Buildkite validation endpoint
- Shows result in status bar: "Pipeline valid ✓" or inline errors
- If no local pipeline file found:
- Status bar shows: "No .buildkite/pipeline.yml found in repo root"
Inline Error Display for Validation Failures
Status: Pipeline validation failed:
- Step ":test": command field is required
- Step ":deploy": depends_on references unknown step "lint"
Why this fits a TUI
- Pipeline validation is a quick check you do while iterating on CI config
- The TUI already lists your pipelines — validating the config for the current pipeline is one key away
- Faster than
bk pipeline validate because the TUI already knows your org and pipeline context
References
bk pipeline validate in buildkite/cli
- Buildkite REST API:
GET /v2/organizations/{org}/pipelines/{pipeline}/validate
Acceptance
Future
- Watch mode:
V (shift) watches the file for changes and re-validates on save
Problem
The Buildkite CLI can validate pipeline YAML files (
bk pipeline validate), but builddeck provides no way to quickly check if a.buildkite/pipeline.ymlis valid. Users who edit their pipeline config have to switch to the CLI or push and wait for Buildkite to reject it.Proposed Feature
Add a pipeline validation action accessible from the pipelines list pane. When a pipeline is highlighted, pressing a key (e.g.
v) reads the local.buildkite/pipeline.yml(if one exists relative to CWD or the repo root) and validates it against the Buildkite API.UX
v.buildkite/pipeline.ymlis found:Inline Error Display for Validation Failures
Why this fits a TUI
bk pipeline validatebecause the TUI already knows your org and pipeline contextReferences
bk pipeline validatein buildkite/cliGET /v2/organizations/{org}/pipelines/{pipeline}/validateAcceptance
vkey on a selected pipeline triggers validation.buildkite/pipeline.ymlfrom CWD or repo rootFuture
V(shift) watches the file for changes and re-validates on save