CircleCIとは
CircleCIは、ソフトウェアアプリケーションのビルド、テスト、デプロイを自動化する、継続的インテグレーション(CI)および継続的デプロイメント(CD)プラットフォームです。開発者がコードの記述に集中できるようにし、アプリケーションが常にリリース可能な状態にあることを保証します。CircleCIのクラウドベースおよび自己ホスト型のソリューションにより、開発チームは、現代のソフトウェア開発の要求を満たすスケーラブルで効率的なCI/CDパイプラインを作成することができます。
CircleCIの利点
CI/CDパイプラインの実装を希望する開発チームにとって、CircleCIは次の利点を提供しています。
-
シームレスな統合
CircleCIは、GitHub、Bitbucket、GitLabなどの人気のあるバージョン管理システムと簡単に統合できます。これにより、CI/CDパイプラインの設定と構成が簡素化されます。 -
柔軟性
CircleCIは、幅広いプログラミング言語、プラットフォーム、ツールをサポートするため、特定のニーズに合わせたアプリケーションのビルドとデプロイが可能です。 -
スケーラビリティ
CircleCIのクラウドベースのソリューションは、並列ビルドのほぼ無制限の容量を提供し、チームがスピードや効率を犠牲にすることなく、拡大して増加するワークロードを処理できるようにします。 -
カスタマイズ性
CircleCIの強力な構成オプションと再利用可能なオーブにより、開発プロセスを合理化し、手動の介入の必要性を減らす高度にカスタマイズされたパイプラインを作成できます。 -
時間の節約
CircleCIのキャッシングおよび最適化機能により、ビルド時間を短縮し、チームがより迅速に新しい機能をイテレーションおよび提供できるようにします。
CircleCI環境の設定
CircleCIアカウントの作成
CircleCIを使用するには、アカウントを作成する必要があります。次の手順に従って、CircleCIアカウントを設定してください。
- CircleCIのウェブサイトを訪問し、「Get Started」をクリックします。
- 好みのバージョン管理プロバイダー(GitHub、Bitbucket、GitLab)を選択し、CircleCIにリポジトリへのアクセスを許可します。
- 必要な情報(名前、メールアドレスなど)を提供して、サインアッププロセスを完了します。
- アカウントが作成されると、CircleCIダッシュボードにリダイレクトされます。
バージョン管理システムとの統合
CircleCIは、GitHub、Bitbucket、GitLabと統合が可能です。CircleCIを使用するためにリポジトリを設定するには、次の手順に従ってください。
- CircleCIダッシュボードから、「Add Projects」をクリックします。
- 利用可能なリポジトリのリストから、リポジトリを探し、「Set Up Project」ボタンをクリックします。
- スクリーンに表示される指示に従って、リポジトリを設定します。CircleCIは、開始に必要なサンプル構成ファイル(
.circleci/config.yml
)を提供する場合があります。
リポジトリが設定されると、変更がリポジトリにプッシュされたときに、CircleCIは自動的にコードのビルドおよびテストを開始します。
プロジェクトの設定
CircleCIは、CI/CDパイプラインをカスタマイズするための様々な設定を提供しています。プロジェクト設定にアクセスするには、CircleCIダッシュボードでプロジェクト名の横にあるギアアイコンをクリックします。主要な設定には以下が含まれます。
-
Environment Variables
パイプラインで利用できる環境変数を定義できます。これは、APIキーなどのハードコードされていない機密情報を保存するのに役立ちます。 -
Build Settings
並列ビルドの許可数、ビルドタイムアウトの期間、およびビルドトリガーのデフォルトブランチなど、様々なビルド設定を構成できます。 -
Notifications
ビルドの失敗または成功したデプロイなど、特定のイベントが発生した場合に、電子メール、Slack、またはWebhook通知を設定できます。 -
Advanced Settings
SSHアクセス、冗長なビルドの自動キャンセル、CircleCI APIの使用などの機能を有効または無効にできる設定です。
CircleCI構成ファイル
config.ymlの理解
全てのCircleCIプロジェクトの中心となるのがconfig.yml
ファイルです。このファイルは、ソフトウェアアプリケーションをビルド、テスト、デプロイするために必要な手順を定義します。
基本構成構文
基本的なCircleCI構成ファイルには、 version
、 jobs
、 workflows
などのいくつかの主要な要素が含まれます。以下は簡単な例です。
version: 2.1
jobs:
build:
docker:
- image: circleci/python:3.7
steps:
- checkout
- run: pip install -r requirements.txt
- run: pytest
workflows:
version: 2
build-and-test:
jobs:
- build
-
version
: このフィールドは、CircleCI構成スキーマのバージョンを指定します。この書き込み時点での最新バージョンは2.1です。 -
jobs
: このセクションでは、パイプラインを構成する個々のタスクまたはアクションを定義します。この例では、Dockerコンテナ内で実行されるcircleci/python:3.7
イメージを使用して実行されるbuild
という単一のジョブがあります。ジョブ内のsteps
フィールドには、コードのチェックアウト、依存関係のインストール、テストの実行などのアクションがリストされます。 -
workflows
: このセクションは、パイプライン内のジョブの関係と実行順序を定義するために使用されます。この例では、build
という単一のジョブを含むbuild-and-test
という単一のワークフローがあります。
高度な構成テクニック
CircleCIは、複雑で効率的なパイプラインを作成するためのいくつかの高度な構成機能を提供しています。これらの機能のいくつかは、次のようなものがあります。
- キャッシュ
依存関係やビルドアーティファクトをラン間でキャッシュすることにより、ビルド時間を短縮できます。例えば、Pythonの依存関係をキャッシュするには、次のようにします。
- restore_cache:
keys:
- v1-dependencies-{{ checksum "requirements.txt" }}
- run: pip install -r requirements.txt
- save_cache:
paths:
- ~/.cache/pip
key: v1-dependencies-{{ checksum "requirements.txt" }}
- 並列性
タスクを同時に実行することにより、パイプラインを高速化できます。ジョブ内のparallelism
フィールドを指定し、circleci tests split
コマンドを使用して複数のコンテナにテストを分散することができます。
jobs:
test:
parallelism: 4
steps:
- run:
name: Run tests
command: |
TESTFILES=$(circleci tests glob "tests/**/*.py" | circleci tests split --split-by=timings)
pytest $TESTFILES
- コンテキスト
コンテキストを使用すると、環境変数やシークレットを複数のプロジェクト間で共有できます。コンテキストを使用するには、ワークフローにcontext
フィールドを追加します。
workflows:
version: 2
build-and-deploy:
jobs:
- build
- deploy:
context: my-organization-context
requires:
CircleCIの料金プラン
CircleCIは、プロジェクトの規模やチームの要件、予算の制約に合わせて様々な料金プランを提供しています。異なる価格帯を理解することで、自分のニーズにもっとも適したプランを選択することができます。
Free Plan
Freeプランは、CircleCIを使い始める個人の開発者や小規模チームに最適です。このプランには次の機能が含まれます。
- 月あたり2,500ビルドクレジット
- 1つの同時ジョブ
- CircleCI APIへのアクセス
- キャッシングやDockerレイヤーキャッシュなどの標準機能
Performance Plan
Performanceプランは、柔軟性、パワー、スケーラビリティが必要な成長中のチームやプロジェクトに適しています。このプランには、次の機能が含まれます。
- カスタマイズ可能なビルドクレジットパッケージ
- ビルドパフォーマンスを最適化するためのリソースクラスへのアクセス
- 最大80の同時ジョブ(利用可能なビルドクレジットによって制限される場合があります)
- テストの洞察や並列処理などの高度な機能
Scale Plan
Scaleプランは、カスタマイズされたCI/CDソリューションを必要とする大規模な組織や企業向けに設計されています。このプランには、次の機能が含まれます。
- カスタマイズ可能なビルドクレジットパッケージ
- 全てのPerformanceプランの機能
- 専任のカスタマーサクセスマネージャー
- カスタマイズ可能なリソースクラス
- 優先サポートとSLA
CircleCI Enterpriseおよび自己ホストソリューション
自己ホスト型のCI/CDソリューションが必要な組織向けに、CircleCIはEnterpriseプランを提供しています。このプランは、厳密なセキュリティとコンプライアンス要件を持つビジネスや、自社インフラストラクチャを管理したい企業に最適です。CircleCI Enterpriseプランの価格は、組織のニーズに合わせてカスタマイズされ、次のような機能が含まれます。
- オンプレミスまたはプライベートクラウドホスティング
- カスタマイズ可能なビルド環境
- 専任のサポートとSLA
- 既存のツールやシステムとの統合
最適な価格プランを選択するには、チームの規模、プロジェクトの要件、希望する同時実行レベル、予算制約などの要因を考慮してください。CircleCIの価格プランや機能を詳しく比較するには、CircleCIの価格ページを参照してください。
参考