Traffine I/O

日本語

2023-03-04

CircleCIとは

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アカウントを設定してください。

  1. CircleCIのウェブサイトを訪問し、「Get Started」をクリックします。
  2. 好みのバージョン管理プロバイダー(GitHub、Bitbucket、GitLab)を選択し、CircleCIにリポジトリへのアクセスを許可します。
  3. 必要な情報(名前、メールアドレスなど)を提供して、サインアッププロセスを完了します。
  4. アカウントが作成されると、CircleCIダッシュボードにリダイレクトされます。

バージョン管理システムとの統合

CircleCIは、GitHub、Bitbucket、GitLabと統合が可能です。CircleCIを使用するためにリポジトリを設定するには、次の手順に従ってください。

  1. CircleCIダッシュボードから、「Add Projects」をクリックします。
  2. 利用可能なリポジトリのリストから、リポジトリを探し、「Set Up Project」ボタンをクリックします。
  3. スクリーンに表示される指示に従って、リポジトリを設定します。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構成ファイルには、 versionjobsworkflowsなどのいくつかの主要な要素が含まれます。以下は簡単な例です。

.circleci/config.yaml
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の依存関係をキャッシュするには、次のようにします。
.circleci/config.yaml
- 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コマンドを使用して複数のコンテナにテストを分散することができます。
.circleci/config.yaml
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フィールドを追加します。
.circleci/config.yaml
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の価格ページを参照してください。

https://circleci.com/pricing/

参考

https://circleci.com/
https://circleci.com/pricing/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!