Buildkite は、 DevOpsで使用される継続的インテグレーション(CI) および継続的デリバリー(CD) プラットフォームです。同社は 2013 年 9 月に設立されました。Buildkite を使用している企業には、Wayfair、Shopify、Slack、Twilio、Canva、Pinterest、Envato、SafetyCulture、MYOB、 Lyft、Uber などがあります。[ 1 ] [ 2 ] [ 3 ]
Buildkite Pty Ltdは2013年9月にBuildboxとして設立され、製品は11月にベータ版を終了した。[ 4 ] Tim Lucasが共同創業者として加わった。[ 5 ]当初の社名であるBuildboxは、別の会社がわずか2週間前に商標を登録したため、変更せざるを得なかった。[ 6 ]
2022年に、同社は新しいツールであるテスト分析を発表しました。[ 7 ] [ 8 ] 2023年には、同社はプライベートエクイティ会社からPackageCloudを買収し、初の買収を行いました。PackageCloudは、企業がソフトウェアを保存し、顧客に配布することを可能にします。
2020年、BuildkiteはOpenView主導でGeneral Catalystとともに2,800万豪ドルを調達した。この取引で同社の評価額は2億豪ドルとなった。[ 3 ] [ 2 ] 2022年11月、同社はOne Ventures、Dominic Pym(エンジェル投資家)、AirTreeなどの投資家から2,100万豪ドル(3,200万豪ドル)のシリーズBラウンドを調達した。[ 9 ] [ 3 ] [ 10 ]執筆時点での総資金調達額は3,900万米ドルである。
Buildkite Pipelines は Buildkite の主要製品であり、ビルド エージェントがセルフ ホストされ、管理されたクラウド パワーのインターフェースによってサポートされるハイブリッド モデルで構築されています。ハイブリッド モデルでは、顧客はエージェントを実行するための独自のインフラストラクチャ (シークレットを含む) を提供し、Pipelines にはユーザー認証、ビルド オーケストレーション、ログとメトリクスの保存を処理するWeb アプリケーションがあります。 [ 11 ] [ 12 ] [ 13 ] [ 2 ] [ 14 ]
Buildkite Pipelines の機能には、並列ビルド[ 15 ] [ 11 ]、セルフホスト型エージェントインフラストラクチャ、ビルドの視覚化、GitHub [ 16 ]、Bitbucket、GitLab、Slack [ 17 ] [ 18 ] [ 19 ]などのサービスとの統合が含まれます。Pipelinesでは、顧客ごとにアカウントあたり最大 10,000 個のエージェントを許可しています。[ 13 ]
このプラットフォームでは、パイプラインを作成できます。パイプラインとは、自動化されたビルドプロセス全体の定義(YAML形式)です。パイプラインは個々のステップで構成され、各ステップは1つ以上のエージェント上で実行される実行可能ジョブを定義します。エージェントとは、これらのジョブを実行するための機能を提供するコンピュータ、仮想マシン、またはコンテナ化されたインフラストラクチャのことです。
3 つのステップで構成されるパイプライン YAML ファイルの例: [ 20 ]
手順: -ラベル: ":hammer:テスト"キー: "tests"コマンド: scripts/tests.sh環境: BUILDKITE_DOCKER_COMPOSE_CONTAINER : app- label : ":package:パッケージ" depends_on : "tests" command : scripts/build-binaries.sh artifact_paths : "pkg/*" env : BUILDKITE_DOCKER_COMPOSE_CONTAINER : app- label : ":debian: Publish" depends_on : "tests" command : scripts/build-debian-packages.sh artifact_paths : "deb/**/*" branches : "main" agents : queue : "deploy"Buildkite Test Analyticsは、メトリクスとトレンド分析を通じて開発チームにテストスイートに関するデータを提供し、Buildkite Pipelinesと統合します。入力データを使用して、Test Analyticsは不安定なテストを特定し、過去のテストパフォーマンスを視覚化し、テスト実行とビルドおよびデプロイメントを関連付けます。
テスト分析には、パイプライン定義の一部として実行されるテストスイートを備えたテストコレクターが必要です。JSONファイルとJUnitファイル用のテストコレクターBuildkiteプラグインがあり、一部のフレームワークには特定のテストコレクターがあります(たとえば、特定のJavaScriptフレームワーク)。[ 7 ] [ 21 ]
テストコレクターは、テストスイートの実行に関するデータを収集し、Webアプリケーションを介して視覚化および解釈するためにテスト分析に報告します。データには、テストのパフォーマンスと実行時間、およびテストの信頼性(または不安定性)が含まれます。[ 7 ] [ 22 ] [ 23 ]
執筆時点では、Packages はベータ版/早期アクセス版です。これは、主要なパッケージ形式をすべてサポートし、セキュリティのためにストレージとオーケストレーションを分離し、Buildkite コマンドラインインターフェイス (CLI) のサポートを含む、アーティファクトおよびパッケージ管理ソリューションとして販売されています。[ 24 ] [ 25 ] [ 26 ]
公式な発売日はまだ発表されていません。
Buildkiteの製品は、以下のソフトウェアコンポーネントで構成されています。
Buildkite Webアプリケーションは、パイプライン、テスト分析、パッケージを統合するためのユーザーインターフェースを提供するソフトウェアコンポーネントおよびプラットフォームです。このWebアプリケーションは、以下の機能を提供します。
エージェントは、さまざまなオペレーティングシステム環境でネイティブに動作する小型のソフトウェアコンポーネントであり、Buildkite Pipelines からパイプラインのジョブを実行するためのエージェント機能を提供します。エージェントとは、パイプラインからジョブを実行する機能を提供する Buildkite エージェントソフトウェアコンポーネントを実行するコンピュータ、仮想マシン、またはコンテナ化されたインフラストラクチャも指します。
テストコレクターは、テストスイートを実行するパイプラインのジョブと統合される、その他の小型ソフトウェアコンポーネントです。テストコレクターは、テストスイートによって実行されたテストのパフォーマンスと信頼性を分析し、そのデータ分析結果をテスト分析ツールに報告します(ただし、顧客がテスト分析ツールを有効にしている場合に限ります)。