mcpField
B
buildkite-cli

buildkite-cli

github.com/buildkiteクラウド・DevOps18287 回インストール2 週間前に更新
リポジトリ

buildkite-cli について

buildkite-cliは、コマンドラインからBuildkiteのビルド、ジョブ、パイプラインなどを操作するツールです。日常のビルド管理からパイプライン管理まで、ターミナルで行いたい開発者やCI運用担当者向けです。

主な機能

  1. 01ビルドの作成、確認、監視、管理
  2. 02ログ確認と個別ジョブの操作
  3. 03パイプラインの一覧、作成、複製、検証
  4. 04認証と組織設定の管理
  5. 05ビルド成果物のダウンロード

活用シーン

  1. 01現在のブランチのビルドを起動して追跡
  2. 02失敗したジョブを探してログを確認
  3. 03パイプラインYAMLをローカルで検証
  4. 04完了したビルドの成果物をダウンロード

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/buildkite/skills --skill buildkite-cli

インストール後、Claude Code で/buildkite-cliを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/command-reference.md

詳細

Buildkite CLI

Buildkite CLI(bk)を使うと、ビルド、ジョブ、パイプライン、シークレット、アーティファクト、クラスター、キュー、パッケージにターミナルからアクセスできます。コマンドラインを離れずに、ビルドの実行、ログの追跡、シークレットの管理、ローカルエージェントの実行、CI/CD ワークフローの自動化を行えます。

ヒント: このスキルでは、一般的なコマンドとパターンを扱います。各コマンドのフラグの詳細については、bk <command> --help を実行してください。CLI のヘルプ出力には網羅的な例が含まれています。特定のフラグについては、ヘルプ出力を信頼できる情報源として利用してください。

クイックスタート

bk job list --build を使うには、Buildkite CLI v3.53.0 以降が必要です。このフラグを利用できない場合は、bk update を実行してください。

# Install
brew install buildkite/buildkite/bk

# Authenticate (OAuth — opens a browser)
bk auth login

# Trigger a build on the current branch (pipeline auto-detected from the repo)
bk build create

# Watch the most recent build run
bk build watch

# Inspect build state, find failed jobs, and read a failed job's log
bk build view 429 --summary
bk job list --pipeline my-app --build 429 --state failed
bk job log <job-uuid>

ほとんどのビルド、ジョブ、アーティファクト、パイプラインのコマンドは、現在の Git リポジトリからパイプライン、ブランチ、最新のビルドを特定します。リポジトリの外から実行する場合や、別のパイプラインを対象にする場合に限り、-p/--pipeline を明示的に指定してください。

インストール

# Homebrew (macOS and Linux)
brew install buildkite/buildkite/bk

# Update an existing install (prints the right command for brew/mise installs)
bk update

バイナリのダウンロードと検証については、references/command-reference.md を参照してください。

認証

推奨される方法は bk auth login です。OAuth を使用し、取得したトークンをシステムのキーチェーンに保存するため、手動でトークンを作成する必要はありません。

# OAuth login (opens a browser; grants all scopes your account allows)
bk auth login

# Login to a specific organization
bk auth login --org my-org

# Login with read-only access (scope group), plus write access to builds
bk auth login --scopes "read_only write_builds"

# Headless / remote machine (no browser)
bk auth login --device

# Non-interactive with an existing API token (CI/Docker)
bk auth login --org my-org --token "$BUILDKITE_API_TOKEN"
コマンド説明
bk auth loginOAuth またはトークンでログインし、認証情報をキーチェーンに保存します
bk auth status現在のセッションを表示します(-o json に対応)
bk auth token保存されたトークンを標準出力に表示します(例:curl 用)
bk auth switch [org](エイリアス bk auth use)アクティブな組織を切り替えます
bk auth logout保存された認証情報を削除します(すべての組織を対象にする場合は --all)

キーチェーンを利用できないヘッドレス Linux ホストでは、トークンの保存先をインメモリストアに固定します:bk config set credential_store shm を実行してから、bk auth login --device を実行してください。

トークンベースの設定(代替方法)

bk configure は OAuth の代わりに、手動で作成した API トークンを保存します。OAuth を利用できない場合に限り使用してください。

bk configure --org my-org --token "$BUILDKITE_API_TOKEN"
bk configure add --org second-org --token "$OTHER_TOKEN"   # add another org

Buildkite > アバター > Personal Settings > API Access Tokens で、少なくとも read_builds、write_builds、read_pipelines、read_artifacts のスコープを持つトークンを作成してください。

組織の切り替え
bk use my-other-org      # top-level alias for bk auth switch
bk auth switch           # interactive selection
bk organization list     # list configured orgs
CLI の設定

bk config は、永続的な設定(デフォルトの出力形式、ページャー、認証情報ストア)を管理します。ユーザー設定は全体に適用されます。--local を指定すると、現在のディレクトリに .bk.yaml が書き込まれます。

bk config list                          # show effective config
bk config set output_format json        # default all output to JSON
bk config set selected_org my-org --local

ビルド

ビルドの作成、表示、一覧表示、キャンセル、再試行、再ビルド、監視、ダウンロードを行えます。

ビルドの作成
# Build the current branch and commit (pipeline auto-detected from the repo)
bk build create

# Explicit pipeline, branch, and message
bk build create -p my-app -b feature/auth -m "Test auth changes"

# With environment variables and metadata
bk build create -e "DEPLOY_ENV=staging" -M "release=true"

# Open the new build in the browser
bk build create -w
フラグ短縮形デフォルト説明
--pipeline-p自動検出パイプラインのスラッグ、または {org}/{slug}
--branch-bパイプラインのデフォルトブランチビルドする Git ブランチ
--commit-cHEADGit コミット SHA
--message-mコミットメッセージビルドメッセージ
--author-a—ビルドの作成者("Name <email>"、メールアドレス、名前、またはユーザー名)
--env-e—環境変数 KEY=VALUE(繰り返し指定可能)
--env-file-f—ファイルから環境変数を読み込みます
--metadata-M—ビルドメタデータ KEY=VALUE(繰り返し指定可能)
--ignore-branch-filters-ifalseブランチフィルターでスキップされる場合でもビルドします
--web-wfalse作成後にビルドをブラウザーで開きます
ビルドの表示

bk build view(およびほとんどのビルドコマンド)は、現在のブランチで最新のビルドをデフォルトで対象にします。

ステータス確認、ポーリング、スクリプト、エージェントのワークフローには --summary を使用してください。ジョブと展開されたパイプライン情報は含まれず、アーティファクトと注釈のリクエストも省略されます。

bk build view --summary             # latest build metadata and state
bk build view 429 --summary         # a specific build number
bk build view 429 --summary -o json # compact structured output
bk build view --mine --summary      # latest build by the current user
ビルドを一覧表示する
bk build list --summary                              # 50 most recent build summaries
bk build list --summary --state failed --branch main # filter by state and branch
bk build list --summary --since 24h --duration ">20m" # slow builds from the last 24 hours
bk build list --summary --meta-data env=production -o json

メタデータのみを出力するには --summary を使用します。API リクエストでは、ジョブと展開されたパイプライン情報が除外されます。サーバー側のフィルター(高速):--pipeline、--since、--until、--state、--branch、--creator、--commit、--meta-data。クライアント側のフィルター:--duration、--message。有効な状態:running、scheduled、passed、failed、blocked、canceled、canceling、skipped、not_run。--state と --branch は、カンマ区切りのリストとして渡します。ページングを制御するには、--limit N(デフォルトは 50)または --no-limit を使用します。フィルターの全一覧は references/command-reference.md を参照してください。

ビルドを監視する

リアルタイムの進行状況をストリーミングします。ビルドが完了するかキャンセルされるまで処理をブロックします。

bk build watch                       # watch the most recent build
bk build watch 429 -p my-app         # watch a specific build
bk build watch --interval 5          # custom polling interval (seconds)
キャンセル、再試行、再ビルド
bk build cancel 429 -p my-app   # only scheduled/running/failing builds
bk build rebuild 429            # rebuild a specific build (or most recent)
ビルドリソースをダウンロードする

bk build download は、ビルドのアーティファクトをローカルファイルシステムにダウンロードします。

bk build download 429 -p my-app
bk build download --mine          # most recent build by the current user
トリガーして追跡する
bk build create -p my-app -b main && bk build watch -p my-app

ジョブ

個々のジョブを確認し、操作します。ジョブは UUID で指定します。bk job log でパイプラインやビルドのコンテキストは不要になりました(-p/-b フラグは非推奨で、無視されます)。

ジョブログを表示する
bk job log 0190046e-e199-453b-a302-a21a4d649d31
bk job log <job-uuid> --no-timestamps   # strip timestamp prefixes
ジョブを一覧表示する

--step-key と --group-key には Buildkite CLI v3.54.0 以降が必要です。いずれかのフラグを利用できない場合は、bk update を実行してください。

ビルド番号がわかっている場合は、--build を渡すと、bk job list は専用のカーソルページング対応 List Jobs エンドポイントを使用します。パイプラインは明示的に指定するか、現在のリポジトリまたは設定から解決できます。--state、--step-key、--group-key はサーバー側で適用されます。--queue と --duration はクライアント側で適用されます。並列ジョブを含むステップ内のすべてのジョブには --step-key を使用し、グループ内のすべてのジョブには --group-key を使用します。

bk job list --pipeline my-app --build 429 --state failed
bk job list --build 429 --state running # pipeline auto-detected
bk job list --build 429 --step-key test
bk job list --build 429 --group-key verification

--build を指定しない場合、コマンドは最近のビルドを検索し、埋め込まれたジョブを抽出します。

bk job list --queue test-queue --state running
bk job list --duration ">10m" --order-by duration --no-limit

--step-key と --group-key には --build が必要で、組み合わせて使用できます。--limit は、出力するジョブの合計数を制限するものであり、API のページサイズは制限しません。すべてのカーソルページを取得するには --no-limit を使用します。CLI はカーソルページ間で、すべてのサーバー側フィルターを維持します。--since と --until は --build と併用できません。

再試行、キャンセル、ブロック解除、優先順位の変更
bk job retry <job-uuid>           # each job UUID can be retried once
bk job cancel <job-uuid>          # cancel one job; prompts for confirmation
bk job unblock <job-uuid>         # unblock a blocked step
bk job unblock <job-uuid> --data '{"release": "true"}'   # with block-step fields
bk job reprioritize <job-uuid> 10 # raise scheduling priority

bk job cancel は 1 つのジョブを停止し、bk build cancel は未完了のすべてのジョブを停止します。他のジョブを直接キャンセルすることはありませんが、そのステップに soft_fail が設定されていない限り、キャンセルされたジョブによってビルドが失敗し、他のステップでファストフェイル(cancel_on_build_failing)が発生する場合があります。キャンセルする前に、bk api /jobs/<job-uuid>(または MCP の get_job)でそのジョブを読み取り、名前と状態をユーザーに提示してください。ユーザーがそのジョブのキャンセルを確認した後にのみ、グローバルな --yes(bk job --yes cancel <job-uuid>)を渡してください。実行中のジョブは、エージェントが処理を終えるまで canceling の状態のままです。v3.62.0 以降、このコマンドは REST のジョブキャンセルエンドポイントを使用し、実行中のジョブには Job canceling: <url>、それ以外には Job canceled: <url> と表示します。v3.61.1 以前では、どちらの場合も Job canceled: <url> と表示します。いずれの場合も、停止したと報告する前にジョブを再度読み取ってください。

デバッグのワークフロー
bk build list --summary --state failed -p my-app
bk job list --pipeline my-app --build 429 --state failed
bk job log <job-uuid>

パイプライン

パイプライン設定の作成、一覧表示、表示、コピー、検証、変換を行います。

一覧表示と表示
bk pipeline list                 # all pipelines (default 100)
bk pipeline list --name deploy   # filter by name (partial, case-insensitive)
bk pipeline view my-app          # pipeline details
bk pipeline view my-app -w       # open in browser
パイプラインを作成する
bk pipeline create "My App" -r "[email protected]:org/my-app.git" --cluster-name "Default"
bk pipeline create "My App" -r "[email protected]:org/my-app.git" --dry-run   # synthetic non-mutating preview
フラグ短縮形デフォルト説明
<name>——パイプライン名(位置引数、必須)
--repository-r—Git リポジトリの URL
--description-d—パイプラインの説明
--cluster-uuid——パイプラインを割り当てるクラスター UUID
--cluster-name——クラスター名(UUID に解決されます)
--create-webhook-Wfalseパイプライン作成後に GitHub または GitHub Enterprise SCM ウェブフックを作成します
--dry-run—falseパイプラインを作成せずに合成プレビューを表示します。読み取り専用の API 呼び出しが行われる場合があります

パイプラインの作成と --create-webhook は、アトミックではない操作として扱ってください。SCM ウェブフックの作成に失敗しても、パイプラインの作成は成功する場合があります。SCM ウェブフックはリポジトリのイベントを配信するものであり、組織の送信通知サービスのウェブフックとは異なります。

パイプラインの YAML 設定、ステップの種類、プラグインについては、buildkite-pipelines スキルを参照してください。

パイプラインをコピーする
bk pipeline copy my-app --target "my-app-v2"             # within the org
bk pipeline copy my-app --target "other-org/my-app"      # across orgs (cluster reset)
パイプラインを検証する

bk pipeline validate は、YAML をローカルでパイプラインスキーマに照らして検証します(API トークンは不要です)。リポジトリへのアクセス、ソース管理プロバイダーの設定、権限、サーバー側でのパイプライン作成の制約は確認しません。デフォルトでは .buildkite/pipeline.yaml または .yml を使用します。

bk pipeline validate
bk pipeline validate --file .buildkite/deploy.yml
他の CI システムから変換する

GitHub Actions、Bitbucket、CircleCI、Jenkins、GitLab(ベータ)、Harness(ベータ)、または Bitrise(ベータ)の設定を Buildkite YAML に変換します。ログインは不要です。

bk pipeline convert -F .github/workflows/ci.yml          # vendor auto-detected
bk pipeline convert -F .gitlab-ci.yml --vendor gitlab    # specify when ambiguous
cat .circleci/config.yml | bk pipeline convert --vendor circleci

出力先はデフォルトで .buildkite/pipeline.<vendor>.yml です(標準入力から読み込む場合は標準出力)。カスタムパスを指定するには -o/--output を使用します。

他の CI システムからのパイプライン変換の詳細については、buildkite-migration スキルを参照してください。

シークレット

クラスター単位のシークレットを管理します。すべてのシークレットコマンドで --cluster-uuid が必須です。

# Create (omit --value to enter it via a masked prompt)
bk secret create --cluster-uuid <uuid> --key MY_SECRET --value "$TOKEN"

# List, view, update, delete
bk secret list --cluster-uuid <uuid>
bk secret get --cluster-uuid <uuid> --secret-id <secret-uuid>
bk secret update --cluster-uuid <uuid> --secret-id <secret-uuid> --update-value
bk secret delete --cluster-uuid <uuid> --secret-id <secret-uuid>

命名規則: キーに使用できるのは英字、数字、アンダースコアのみです。また、大文字と小文字を区別せず、buildkite または bk で始めることはできません。例外は BUILDKITE_API_TOKEN です。作成時または更新時に --description とアクセス用の --policy(YAML)を指定します。

パイプライン YAML 内のシークレット(secrets:)とジョブのステップ(buildkite-agent secret get)での使用方法については、buildkite-pipelines および buildkite-agent-runtime スキルを参照してください。

アーティファクト

ビルドアーティファクトを一覧表示してダウンロードします。コマンドは bk artifacts(複数形)です。ビルド番号を省略した場合、現在のブランチで最新のビルドが使用されます。

bk artifacts list                              # most recent build
bk artifacts list 429 -j <job-uuid>            # a specific job in a build
bk artifacts download --build 429              # all artifacts for a build
bk artifacts download <artifact-id> --build 429

bk artifacts upload はありません。ジョブのステップ内で buildkite-agent artifact upload を使用してアーティファクトをアップロードしてください(buildkite-agent-runtime スキルを参照)。パイプライン YAML の artifact_paths: については、buildkite-pipelines スキルを参照してください。

クラスターとキュー

CLI からクラスター、キュー、クラスターのメンテナーを直接管理できます。

bk cluster list
bk cluster create --name "Production"
bk queue list <cluster-uuid>
bk queue create <cluster-uuid> --key deploy
bk queue pause <cluster-uuid> <queue-uuid>     # stop dispatching to a queue

bk cluster、bk queue、bk maintainer では、完全な CRUD 操作を利用できます。コマンド一覧は references/command-reference.md を参照してください。

ローカルエージェント

bk agent run はエージェントをダウンロードし、一時的なクラスター・トークンを作成して、一時的な buildkite-agent をローカルで実行します。自分のマシンでパイプラインの変更をテストするのに便利です。Ctrl+C を押すと、すべてクリーンアップされます。

bk agent run                      # latest agent on the Default cluster
bk agent run --queue deploy       # listen on a specific queue
bk agent install                  # install the binary + a starter config

bk agent list/view/pause/resume/stop で、組織に登録されたエージェントを管理できます。

事前チェック、参照、その他のコマンド

bk browse                 # open the current pipeline (filtered to the branch)
bk browse 429 -n          # print the build URL instead of opening it
bk init                   # scaffold a starter pipeline.yaml
bk package push <registry-slug> --file-path pkg.tar.gz
bk user invite [email protected] [email protected]
bk skill add buildkite-api   # install a Buildkite skill into the current agent

bk preflight run を使用して、ローカルの未コミットの変更を含むビルドを実行する方法については、buildkite-preflight スキルを参照してください。

生の API アクセス

bk api を使用して、REST または GraphQL を直接呼び出します。

bk api '/pipelines/my-app/builds/429?exclude_jobs=true&exclude_pipeline=true'
bk api -X POST /pipelines --data '{"name":"New","repository":"git@..."}'
bk api --file query.graphql # GraphQL file with a named operation

REST および GraphQL の包括的なドキュメント(エンドポイント、ミューテーション、ページネーション、ウェブフック)については、buildkite-api スキルを参照してください。

MCP サーバーの代替手段

Buildkite MCP サーバーを利用できる場合、読み取り操作には MCP ツールを優先してください。認証、ページネーション、解析に対応しています。MCP が対応していない操作には CLI を使用してください。

CLI コマンドMCP ツール備考
bk build createcreate_buildMCP が認証を自動的に処理します
bk build view --summary / list --summaryget_build / list_buildsメタデータのみ。ジョブと詳細なパイプライン情報は含まれません
bk job list --buildlist_jobsビルドのレスポンスを展開せずにジョブを一覧表示します
—get_jobMCP 専用の単一ジョブのメタデータ検索
bk job logread_logs, tail_logsMCP はストリーミングに対応しています
bk pipeline list / view / createlist_pipelines, get_pipeline, create_pipeline
bk artifacts list / downloadlist_artifacts_for_build, get_artifact
bk cluster listlist_clusters
bk auth statuscurrent_user, access_token
bk build watch / download—CLI のみ
bk job cancelcancel_jobサーバー v1.27.0 以降。読み取り専用モードでは使用できません。org_slug と job_id を渡し、さらに pipeline_slug と build_number を両方渡すか、どちらも渡さないでください。CLI と同じ確認および再確認のルールが適用されます。サーバーにこのツールが表示されない場合は、bk job cancel を使用してください
bk job retry / unblock—CLI のみ
bk secret *, bk package push, bk agent run—CLI のみ
bk api—読み取りには MCP ツールを、カスタム呼び出しには CLI を使用してください

よくある間違い

間違い起こること修正方法
ステータスのポーリングにビルドの完全なレスポンスを使用するジョブ、パイプラインの詳細、アーティファクト、アノテーションを繰り返しダウンロードしますbk build view --summary または bk build list --summary を使用してください
ビルド番号がわかっているのに --build を省略する最近のビルドのレスポンスをスキャンし、埋め込まれたジョブを抽出しますbk job list --pipeline my-app --build 429 または MCP の list_jobs を使用してください
認証前に bk コマンドを実行するコマンドが認証エラーで失敗します先に bk auth login(またはトークンを指定して bk configure)を実行してください
Docker/CI でブラウザーを使う想定で bk auth login を実行するハングします。ブラウザーもキーチェーンも利用できませんbk auth login --org my-org --token "$TOKEN" を使用するか、ヘッドレス環境では --device を使用してください
bk job log に -p/-b を渡すフラグは非推奨で、無視されます。ジョブ UUID に必要な情報が含まれていますジョブ UUID のみを渡してください
すでに再試行済みのジョブ UUID を再試行するAPI が 422 を返します。各 UUID は一度だけ再試行できます最初の再試行で返された新しいジョブ UUID を使用してください
キーが buildkite/bk で始まるシークレットを作成する予約済みのプレフィックスのため、作成に失敗します別の名前を選んでください(例外:BUILDKITE_API_TOKEN)
--value にシークレット値をそのまま渡す値がシェルの履歴とプロセス一覧に残ります環境変数の参照(--value "$TOKEN")またはマスクされたプロンプトを使用してください
停滞したジョブを 1 つ停止するために bk build cancel を実行するビルド内の未完了ジョブがすべてキャンセルされます対象として確認したジョブに対して bk job cancel <job-uuid> を実行してください
完了済みのビルドに対して bk build cancel を実行するAPI エラーが発生します。キャンセルできるのはスケジュール済み/実行中/失敗中のビルドのみです先に bk build view --summary で状態を確認してください
bk artifacts upload が存在すると考えるそのようなコマンドはありませんジョブから buildkite-agent artifact upload を使用してアップロードしてください
bk と buildkite-agent を混同するbk はローカルで API に対して実行されます。buildkite-agent はジョブのステップ内で実行されますターミナルでは bk を、パイプラインのコマンド内では buildkite-agent を使用してください

追加リソース

リファレンスファイル
  • references/command-reference.md — インストール方法、bk build list/bk job list のすべてのフィルターテーブル、クラスター/キュー/メンテナーのコマンド、bk agent、bk api、パッケージのプッシュ、設定の詳細

参考資料

コメント