BuildkiteとGitLabの比較

このページのコンテンツ

要約

Buildkite is a continuous integration tool designed to improve software developer productivity. Buildkite product consists of three main components:

  • Agent: Is a small, cross-platform build runner that is enables an enterprise to run its builds in their own infrastructure. Agents run on several platforms including Ubuntu, Debian, Mac, Windows, Docker, and others. Agents can only run one build job at one time.
  • Pipelines: Are containers to define and model the build workflows and also to kick off post build steps.
  • Deployments: These are steps that run after a build is complete and can be either triggered automatically or manually.

As a smaller company with limited resources, Buildkite has taken a strategy of using plug-ins to extend its functionality and to integrate with other software. It is unclear how many community plug-ins have been developed. However as on 3/10/2020 there are about 19 supported plug-ins provided by Buildkite.

Strengths

  • Parallel Testing: One of the key value props for Buildkite is the ability to run parallel tests on builds, thus reducing test times from hours to minutes. Buildkite does this using its parallelism approach to spawn out multiple agents (e.g. several hundred parallel agents). With different tests running on a different agents. This massive parallel testing is possible due to the light weight build agent.
  • Runs on-premises and on AWS infrastructure
  • Agents can be deployed on multiple platforms.
  • Pipelines as code: Ability to define complex pipelines in yml including running any scripts, tool or shell commands within the pipeline.

不足部分

  • Buildkite is a point solution for continuous integration and currently lacks other critical DevOps steps such as Issue Management, Source Code Management, Security Testing etc. These capabilities require integrations with other tools.
  • Security - Buildkite relies on third party providers for security testing. Calling third party code to launch security tests would require special scripts and execution of APIs from within Buildkite's pipeline definition.
  • Lacks native support for an Artifact Repository. File paths to various artifacts have to be noted and maintained by users.
  • Secrets management is possible but users have to either write plug-ins to standard secrets management products such as Hashicorp or write custom scripts to pull secrets from a secure storage and apply them at the right step in the build process.
  • Collaboration features are limited to developers annotating comments inline within log files and other points of failure.

リソース

Buildkite Documentation

Buildkite Videos

比較

機能

共有Runner、または個別RunnerでのCI/CDが無料

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab.comが提供する共有Runnerを使用して、プライベートプロジェクトでは毎月2000分までのCI/CDを、パブリックプロジェクトでは時間無制限のCI/CDを無料で利用できます。さらに、より高速なビルド、時間無制限のビルド、特殊な要件などに対応するために個別Runnerをセットアップして使用することもできます。

GitLab.comのプランを表示

統合されたCI/CD

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabにはCI/CD機能が統合されているので、CI/CDのために他のツールをインストールする必要はありません。GitLabのCI/CDを使用して、ウェブサイト(GitLab Pages)やウェブアプリケーションをビルド・テスト・デプロイできます。ジョブの結果はマージリクエストに表示され、簡単にアクセスできます。

CI/CDの詳細

CI/CD 水平自動スケール

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab CI/CDのクラウドネイティブなアーキテクチャでは、ワークロードが増加した場合に、新しいノードを追加することで簡単に水平方向にスケールできます。GitLab Runnerはパイプライン処理が開始されると、自動的に新しいコンテナを作成し、処理が完了して不要になったコンテナを削除します。これにより、CI/CDのコストを抑えることができます。.

GitLab CI/CDの水平オートスケーリングの詳細

CI/CD パイプラインダッシュボード

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

プロジェクトやグループ全体のパイプラインの履歴と現在のステータスをユーザーごとにカスタマイズできる単一のダッシュボードで視覚化します。

オペレーションダッシュボードでのプロジェクト間のパイプラインの詳細

HTML成果物をオンラインで表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

テストレポート、コード品質、コードカバレッジなどの情報を、 ダウンロードせずに、直接ブラウザで表示できます。

プロジェクト内のジョブアーティファクトの利用の詳細

パイプラインをスケジュール実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

cronのように、パイプラインをスケジュール実行できます。

GitLabでパイプラインがスケジュール実行される仕組の詳細

コード品質MRウィジェット

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マージリクエストのウィジェットエリアに表示されるコード品質レポートにより、変更がコードの品質に与える影響を事前に知ることができます。

コード品質の詳細

コード品質レポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コード品質レポートは、パイプラインページで利用可能で、組織の推奨スタイルや基準を満たしていないコードの領域を表示します。

コード品質レポートの詳細

保護変数

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

権限のあるユーザーだけが変数の値を取得できるように、変数を保護することができます。 「保護変数」は「保護ブランチ」で実行されているジョブからだけ取得できます。

保護変数の利用方法の詳細

CI/CDの設定ファイルのパスを変更可能

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

プロジェクトのトップディレクトリにCI/CDの設定ファイルを置きたくない場合などに、設定ファイルのパスを独自に定義できます。

カスタムCI/CD設定ファイルの設定方法の詳細

CI/CDジョブをWindowsで実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab RunnerはWindowsをサポートしているので、ジョブをこのプラットフォームでネイティブに実行できます。 PowerShellやバッチファイルを活用することで、Windowsに基づくプロジェクトを自動で構築、テスト、デプロイすることが可能です。

WindowsにGitLab Runnerをインストール

macOSでCI/CDのジョブを実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab RunnerはmacOSをサポートしているので、このプラットフォーム上でネイティブにジョブを実行できます。 シェルスクリプトやコマンドラインツールを利用して、macOSベースのプロジェクトのビルド、テスト、デプロイを自動化できます。

macOSにGitLab Runnerをインストール

Linux ARMでCI/CDのジョブを実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab RunnerはARMアーキテクチャのLinuxをサポートしているので、このプラットフォーム上でネイティブにジョブを実行できます。 シェルスクリプトやコマンドラインツールを利用して、Linux ARMベースのプロジェクトのビルド、テスト、デプロイを自動化できます。

LinuxにGitLab Runnerをインストール

FreeBSDでCI/CDのジョブを実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab RunnerはFreeBSDをサポートしているので、このプラットフォーム上でネイティブにジョブを実行できます。 シェルスクリプトやコマンドラインツールを利用して、FreeBSDベースのプロジェクトのビルド、テスト、デプロイを自動化できます。

FreeBSDにGitLab Runnerをインストール

パイプラインのコードカバレッジを表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabでは、カスタマイズ可能な正規表現を使用してジョブの出力をパースして、SimpleCovのようなツールが生成するコードカバレッジを取得できます。 取得したデータはUIに自動的に表示され、HTMLページなどに埋め込むためのバッジとして使用することもできます。

GitLabでコードカバレッジの生成と表示の詳細

GitLab CI/CDでの各コマンドの実行時間の詳細

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

他のCIシステムの中には、ジョブ全体の実行時間に加えて、各コマンドの実行時間を表示できるものがあります。 GitLabにも同様の機能を実装するための検討が行われています。

この課題の詳細を確認

保護Runner

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

保護Runnerを使用すると、デプロイ用の秘密鍵のような、機密情報を保護することができます。 保護ブランチで実行されるジョブのみが、保護Runnerにアクセスできます。

この課題の詳細を確認

最小限のCI/CDの設定

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab CI/CDは、Jenkinsのようなツールで同様のパイプラインを実行する場合と比べて、より少ない設定で済みます。

GitLab CI/CDの詳細

統合されたカスタムのプロジェクトテンプレート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

新しいプロジェクトを作成するときは、いくつかの実用的なサンプルコードや CI が予め設定されている定義済みのテンプレートからプロジェクトを開始することができます。 さらに、グループを割り当ててカスタムのプロジェクトテンプレートを定義できます。このグループの子プロジェクトは、新しいプロジェクトを作成するときのテンプレートとして使用できます。

プロジェクトテンプレートを表示

失敗したCIのジョブを自動で再実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

.gitla-ci.ymlに特別なキーワードを記述することで、GitLab CIでジョブが失敗した場合に、 指定の回数だけジョブを自動で再実行できます。

失敗したCIのジョブを自動で再実行の詳細

パイプラインのセキュリティ

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

保護ブランチで実行されるCI/CDパイプラインに対して、定義したセキュリティルールが守られているかチェックできます。 パイプラインのセキュリティは、手動で作成したパイプライン、再実行したジョブ、手動アクションにも適用されます。

パイプラインのセキュリティの詳細

外部のCI定義ファイルをインクルード

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

複数のプロジェクトで共通なジョブのテンプレートとして再利用するために、 外部のCI定義ファイルをインクルードできます。

外部ファイルのインクルードの詳細

ブラウザーパフォーマンステスト

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

マスターにマージする前に、Web アプリケーションのパフォーマンスの低下を簡単に検出します。ブラウザのパフォーマンステストは Auto DevOps に含まれており、設定なしでルートページの自動的なパフォーマンス分析を提供します。

ブラウザーパフォーマンステストの詳細

Load Performance Testing

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Easily detect performance regressions for software under load, prior to merging into master.

Learn more about Load Performance Testing

CI/CDのログを折りたたんで表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ジョブの各コマンドの出力ログを折りたたんで表示できます。

ドキュメント

外部リポジトリ用のCI/CD

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabに、GitHubやBitbucketなどの外部サービスがホストしているあなたのプロジェクトを接続し、 GitLab CI/CDのパイプライン機能を活用し、アプリケーションを簡単に構築、テスト、開発しましょう。

外部リポジトリ用のCI/CDの詳細

GitHub用のCI/CD

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabにGitHubがホストするあなたのプロジェクトを接続し、GitLab CI/CDのパイプライン機能を活用し、 アプリケーションを簡単に構築、テスト、開発しましょう。

GitHub 用の CI/CD の詳細

悪いテストを隔離

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

テストが失敗することを常態化させてはなりません。1クリックで不安定なテストや壊れたテストを一時的に蚊帳の外に置いて、テストをGreenな状態に保つことができます。

この課題の詳細を確認

マージリクエストウィジェットにある JUnit テストの概要を確認する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab を使用すると、マージリクエストウィジェットから JUnit テスト結果を表示できるので、変更による品質への影響に関する見解が得られます。

マージリクエストウィジェットにある JUnit テストのサマリーの詳細

インタラクティブな Web ターミナル

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

インタラクティブな Web ターミナルを使用すると、実行中または完了済みの Kubernetes、Docker、Shell ランナージョブに接続し、コマンドを手動で実行して、システムで何が起こっているかをよりよく理解できます。

インタラクティブ Web ターミナルの詳細

ファイルやパスに変更がある場合にのみジョブを実行

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ジョブは、特定のファイルやパスに変更があった場合にのみ実行するように設定でき、実行を制御して、各コミットの変更に対して最適化された、より複雑なビルドパイプラインを実現できます。

変更のみ/例外の詳細

Windows Container Executor

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

この機能を使用すると、Linux ホスト上と同じように Windows 上で Docker コンテナを直接使用できます。これにより、Microsoft プラットフォームのユーザーは、より高度なパイプラインの調整と管理が可能になります。

Windows Container Executor の詳細

パイプラインの削除

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

API またはパイプラインの詳細画面でパイプラインの削除が可能です。これにより、パイプラインで機密情報が漏洩したり、不要なパイプラインが多数作成されたり、パイプラインを削除する必要があるその他の問題が発生した場合にパイプラインを削除できます。

マージリクエストのみ/除くの詳細

リポジトリ毎の複数のパイプラインを定義

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab では複数プロジェクトにまたがるビューを提供する複数プロジェクトのパイプラインがありますが、各パイプライン定義は特定のプロジェクトに関連付けられた YAML ファイルとして存在します。GitLab には今のところ 1 つの YAML ファイルに複数のパイプラインを定義する機能はありません。

この課題の詳細を確認

monorepo の明示的なサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

特定のパスやファイルに変更がある場合にのみジョブを実行する機能は、単一のレポに多くのマイクロサービスを含むモノレポをサポートします。

CI/CD のみ/以外の実行の詳細

ファーストクラスのコンテナ作成

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

実装の詳細を定義する必要なく、CI/CD のジョブ中にコンテナを構築するように定義できる機能です。

この課題の詳細を確認

コードリポジトリ内の任意のイベントでパイプラインを起動する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードリポジトリで定義されたイベントが実行された時に、パイプラインやワークフローを起動できるようにします。 例えば、リポジトリやプロジェクトに新しいメンバーが追加された時に、ウェルカムメールを送信するワークフローを実行することができます。

GitLab で利用可能なイベントに関するドキュメント

Through WebHooks
Supports 21 event triggers

コードリポジトリアプリのエコシステム内の任意のイベントでパイプラインを起動する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードリポジトリやそのリポジトリのエコシステムのアプリ拡張で定義されたイベントが実行されたときに、パイプラインやワークフローを開始できるようにします。 例えば、Slackインテグレーションでイベントが発生したときに、リポジトリの作業項目を更新します。

Through WebHooks

コミュニティによるワークフロー (設定はコード化されているので共有可能)

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLabのパイプライン(ワークフロー)はリポジトリ内でymlとして定義されており、アクションと同じように共有することができます。

あらゆるプラットフォーム、言語、クラウドに対応

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

あらゆるOSプラットフォーム、言語、クラウドプロバイダーで実行可能です。

設定、インフラの構築、パッチの適用は不要

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

SaaS型として提供されているので、ツールの設定、インフラの構築、メンテナンスを行うことなく、ソフトウェア開発やデリバリーのために利用できます。

プログラミング言語に基づいて実行するパイプラインを自動的に提案

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

プログラミング言語を検出し、実行するパイプラインのテンプレートを自動で提案し、ユーザーが迅速にパイプラインを実行できるようにします。

Auto Devops runs a pipeline, not just suggest one

多くの定義済みパイプラインが付属

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ベストプラクティスを集めた、多くの定義済みパイプラインを提供されているので、一般的なプログラミング言語、プラットフォームの各プロジェクトで簡単に利用を開始できます。

SDLCで使用される様々なツールとサービスを接続

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

さまざまなツールやサービスからのデータや出力を接続する、中心のハブとして使用することができます。

マトリックスビルド

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ビルドを定義して実行する機能が組み込まれており、多数の入力変数に基づいて複数の並列ジョブやパイプラインを自動的に起動することができます。 例えば、3つのOS用と3つの異なるバージョン用のライブラリのビルドは、自動的に9つの並列ジョブで実行されます。 GitLabでは、マトリックスビルドを動的な子パイプラインを使って実装できます。

親子パイプラインの詳細

実行中のパイプラインのログのライブ表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

(パイプライン実行中に)ジョブのログをライブ表示できます。

すべてのジョブのログを横断的に検索

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

すべてまたは複数のジョブのログを一度に検索できます。 トラブルシューティングやジョブの出力のレビュー中に、エラーやその他のコンテンツをより効率的に検索できます。

browser search within the log at a time

生のログを平文で表示

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

ログの平文を取得して、マークアップせずに表示したり、外部で使用したりできます。

リポジトリごとに複数のパイプライン

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

コードリポジトリごとに複数のパイプラインを定義して、異なるプロセスを異なる時間に実行できるようにしたり、1つのリポジトリ内に複数のアプリケーションがある場合に、アプリケーションごとに異なるビルドと処理を行うことを可能にします。

別のリポジトリでアクション/ジョブを参照する

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

パイプライン/ワークフローを参照し、実行されているリポジトリとは別のリポジトリのアクション/ジョブを使用できるようにします。

* このページの情報は最新ではありません。最新の情報は 公式サイト をご確認ください。

GitLabはGitLab, Inc.の商標です。その他のすべての商標・ロゴマークの権利はそれぞれの所有者に帰属します。

GitLabはオープンコア

GitLabの競合製品のほとんどはソースコードを公開していませんが、GitLabはオープンコア製品です。 GitLabコミュニティエディションは完全なオープンソースで、 GitLabエンタープライズエディションはオープンコア(プロプライエタリ)です。

ソースコードにアクセス

クローズドソースなソフトウェアと異なり、 コミュニティエディションエンタープライズエディションの ソースコードを確認したり、修正することができます。 機能の追加やカスタマイズのために、サーバーのソースコードを修正したり、GitLabのリポジトリをフォークすることができます。 独自に実施した変更はメインのソースコードにフィードバックし、マージされるように挑戦することを推奨します。 それにより、他のユーザーの役に立つ上に、自身のインスタンスのアップデート作業を簡単に保つことができます。

コミュニティからの貢献

GitLabには毎月数百人からの貢献があります。 顧客・ユーザー・GitLab社員のすべてが毎月のリリースに貢献しています。 このことは、簡単に使用できる便利なユーザー管理のような、 組織にとって本当に必要な機能の開発に役立っています。

長期利用に最適

GitLabは、数十万の組織が利用し、頻繁にソフトウェアへ貢献しています。 GitLabには堅牢なコミュニティが存在します。 つまり、GitLabは単一企業のサポートに依存していないので、 長期利用に適しています。

毎月、新しい安定版がリリース

毎月、機能の改善と新機能の追加と不具合の修正のすべてが適用された、 GitLabの新しい安定版がリリースされます。 これにより、GitLabはとても迅速に顧客の要望に応えることができます。

Gitlab x icon svg