BuildkiteとGitLabの比較

On this page

Summary

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.

Gaps

  • 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.

Resources

Buildkite Documentation

Buildkite Videos

Comparison

機能

共有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でパイプラインがスケジュール実行される仕組の詳細

コード品質

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Code Quality reports are available in the merge request widget area or on the pipeline page, giving you early insights into how the change will affect the health of your code before deciding if you want to accept it.

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

保護変数

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 に含まれており、設定なしでルートページの自動的なパフォーマンス分析を提供します。

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

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

テストが失敗することを常態化させてはなりません。Across all tests, keep flaky or broken tests out of sight (but not out of mind), and keep the build green with one-click quarantine of tests.

この課題の詳細を確認

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

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

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

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

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

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Interactive web terminals allow you to connect to a running or completed Kubernetes, Docker, or Shell runner job and manually run commands to better understand what’s happening in the system.

インタラクティブ 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

Deleting a pipeline is possible using the API and also in the UI on the Pipeline Details page. This allows for cases where perhaps secrets have been leaked in a pipeline, many unneeded pipelines have been created, or other issues have occurred where pipelines need to be deleted.

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

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

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

While GitLab has multi-project pipelines that give you a view across projects, each pipeline definition lives in a YAML file tied to a specific project. GitLab には今のところ 1 つの YAML ファイルに複数のパイプラインを定義する機能はありません。

この課題の詳細を確認

monorepo の明示的なサポート

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

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

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

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

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

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

この課題の詳細を確認

Trigger pipeline on any event in code repository

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Enables pipelines/workflows to be started based on when any defined event is executed in the code repository. For example, could run a workflow to send a welcome email on adding a new member to a repository or project.

Docs on GitLab triggerable events

Through WebHooks
Supports 21 event triggers

Trigger pipeline on any event in code repository app eco-system

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Enables pipelines/workflows to be started based on when any defined event is executed in the code repository or in any app extension of that repository’s eco-system. For example, when an event happens in the Slack integration, update a repo work item.

Through WebHooks

Community powered workflows (configuration is code so are shareable)

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

GitLab pipeline (workflows) are defined as yml in repos and can be shared just like actions.

Any platform, any language, and cloud

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Can run on any OS platform, for any language, and on any cloud provider

No configuration, infrastructure setup, or patching necessary

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

As a SaaS offering, can provide software development and delivery services without the need to set up the tool itself, infrastructure to run it, and to maintain it by patching.

Auto suggest pipelines to start with based on code language

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Through language detection, auto suggest pipeline templates to run to help users quickly get a pipeline running.

Auto Devops runs a pipeline, not just suggest one

Comes with many pre-defined pipelines

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Offers many pre-defined pipelines that capture best practice and make it easy for a user to get started with each project for common languages, platforms, and configurations.

Connects the diff tools & services used during the SDLC

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Can be used as a central glue to orchestrate, and connect data and outputs from your many different tools & services.

Matrix builds

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Built-in ability to define and execute builds that automatically trigger a number of parallel jobs or pipelines based on a multitude of input variables. For example, building for 3 OS’s at once, and for 3 different versions of libraries, would automatically be done in 9 parallel jobs. At GitLab, this is implemented using dynamic child pipelines.

Learn more about child/parent pipelines

Live streaming of logs from running pipeline

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Ability to see live job logs (while the pipeline is running).

Search across all job logs

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Search across all or more than one job log at once. Enables more efficient search for errors and other content of interest while troubleshooting or reviewing job output.

browser search within the log at a time

Download archive of all logs

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Ability to download an archive of all job logs from a pipeline run in a single archive file. This is handy to enable analysis of the logs through another tool, or to send logs to someone who might not have access otherwise.

Requires scripts to store logs
can be individually downloaded

View raw logs in plaintext

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Ability to get the plain text of a log, no mark up, to be able to share it or use it externally.

Multiple pipelines per repo

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Ability to define multiple pipelines per code repository to enable either different processes to be run at different times, and/or to enable monorepos where there are multiple applications within one repo which need to be built and handled differently per application.

Reference actions/jobs in another repo

CORE
STARTER
PREMIUM
ULTIMATE
FREE
BRONZE
SILVER
GOLD

Ability to have pipelines/workflows reference and use actions/jobs from a repo different from the one it is being run from, without needing any installation.

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

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

GitLabはオープンコア

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

ソースコードにアクセス

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

コミュニティからの貢献

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

長期利用に最適

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

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

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

日本語でのサポートが必要な場合は 国内正規販売代理店 へお問い合せください。

無料で30日間、 GitLab Ultimate を試用できます。