Pipedash
Providers

Buildkite

Monitoring of Buildkite builds, agents and artifacts in Pipedash, with branch builds and build cancel.

The Buildkite plugin (buildkite) monitors the latest build of each selected pipeline. It also lists agents and artifacts, which no other provider does. It loads build history, starts builds on a branch and cancels builds.

Requirements

The plugin authenticates with a Buildkite API access token that has the read_builds, read_pipelines and read_organizations scopes. Buildkite has no optional scopes, so Pipedash has nothing else to check.

Configuration

Add Provider dialog with Buildkite selected and its credential fields
Buildkite needs one API access token.
KeyTypeRequiredDefaultDescription
tokenPasswordYesNoneBuildkite API access token with read_builds, read_pipelines and read_organizations scopes.

Two more keys go in the config table of the TOML file:

  • selected_items: Comma-separated entries in the form org/pipeline-slug. An empty selection shows the error No pipelines configured.
  • organization: The organization slug. Every instance needs it.

Base URL

The endpoint is fixed at https://api.buildkite.com/v2. There is no base_url field.

Pipeline discovery

Organizations are the ones the token can see. Discovery lists the pipelines of the chosen organization, or of every organization when none is chosen, with the repository name as description. Pipedash shows the latest build of each pipeline in selected_items. If some pipelines fail to load, the rest still appear.

Buildkite is the only provider that also shows agents and artifacts:

  • Agents: name, hostname and status. The status is busy when the agent has a job, idle when connected without a job and disconnected otherwise.
  • Artifacts: the artifacts of one build.

Trigger parameters

NameTypeRequiredDefaultDescription
branchStringYesmainBranch to build. Pipedash builds HEAD of that branch.

Cancel

Pipedash cancels the build through the Buildkite API, using the run number as the build number.

TOML example

[providers.buildkite-ci]
name = "Buildkite CI"
type = "buildkite"
token = "${BUILDKITE_TOKEN}"
refresh_interval = 15

[providers.buildkite-ci.config]
organization = "mycompany"
selected_items = "mycompany/deploy-pipeline,mycompany/test-pipeline"

Status mapping

Pipedash statusBuildkite state
successpassed
failedfailed
runningrunning, started
pendingscheduled, creating, waiting, blocked, and any other state
cancelledcanceled, canceling
skippedskipped, not_run