無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

FAQ

1+ year ago6 min read
クラウド
Server v4.x
Server v3.x
このページの内容

一般

CircleCI のスタッフにプログラムコードを見られる可能性はありますか?

CircleCI のスタッフがお客様の許可を得ずにコードを見ることはありません。 お客様が問題解決のサポートを希望される際は、事前に許可を得たうえで、サポートエンジニアがコードを確認させていただく場合があります。

詳しくは CircleCI の セキュリティポリシーをご覧ください。

基本イメージを作成していなくても、CircleCI を使用できますか?

はい、CircleCI では Docker Executor で使用する多数の「CircleCI イメージ」を提供しています。 イメージの使用方法および全リストは、 CircleCI Developer Hub および CircleCI イメージのガイドをご覧ください。

machine Executor については、 利用可能なマシンイメージをご覧ください。

実行環境やイメージに関する概要は、 実行環境をご覧ください。

新機能のリクエストは可能ですか?

はい、 Ideas のページから新機能のリクエストや、これまでにリクエストされた機能の閲覧が可能です。 新機能をリクエストするには、まず Give Feedback セクションでカテゴリーを選択します。

これまでにリクエストされた機能を閲覧する際は、TrendingTopNew で並び替えたり、下記によりフィルタリングできます。

  • Under Review: CircleCI で検討中の機能リクエスト

  • Planned: 今後取り組む予定の機能リクエスト

  • In Progress: 現在取り組んでいる機能

  • Complete: 現在のサービスに追加済みの機能リクエスト

移行

現在使用している他社の CI/CD ツール から CircleCI に移行できますか?

はい、CircleCI では下記からの移行ガイドを提供しています。

詳細は、 移行の概要のガイドでもご確認いただけます。

Host CircleCI

CircleCI のホスティングオプションにはどのような違いがあるのでしょうか?

  • クラウド: CircleCI がサーバーの初期設定、インフラストラクチャ、セキュリティ対策を管理し、サービスのメンテナンスを担当します。 クラウドなら最新機能や自動アップグレードをすぐに利用できるため、お客様の内部システムの管理にかかる負担が軽減されます。

  • サーバー: AWS や GCP などのサービスを介してご自身で CircleCI のインストールや管理を行います。 サーバーのインストールは、お客様のチームがデータセンターのポリシーに従って設定し保守を行うファイアウォールの内側にあます。 自在なカスタマイズや新バーションへのアップグレードの制御など、あらゆる管理権限がお客様にあります。

CircleCI は企業(エンタープライズ)でも利用できますか?

はい、CircleCI server は AWS または GCP 上にインストールできます。 インストールの詳細やガイドへのリンクは、 CircleCI server v4.x の概要をご覧ください。 ご要望がございましたら お問い合わせください。

アーキテクチャ

CircleCI がサポートする OS は?

CircleCI ではどの CPU アーキテクチャをサポートしていますか?

Docker ジョブでは amd64を、マシンジョブでは amd64 と ARM リソース をサポートしています。

テストで IPv6 を利用できますか?

IPv6 によるローカル通信のテストでは、 Machine Executor を利用できます。 残念ながら、WAN における IPv6 通信はサポートしていません。CircleCI が使用しているクラウドサービスの全てが IPv6 をサポートしているわけではないためです。

Machine Executor で実行しているホストは、eth0lo といったネットワークインターフェースに対して IPv6 アドレスが割り当てられます。

IPv6 環境のサービスをテストするために、コンテナに IPv6 アドレスを割り当てるように Docker を構成することも可能です。 下記のように Docker デーモンを設定することでグローバル設定を有効にできます。

jobs:
  ipv6_tests:
    machine:
      # The image uses the current tag, which always points to the most recent
      # supported release. If stability and determinism are crucial for your CI
      # pipeline, use a release date tag with your image, e.g. ubuntu-2004:202201-02
      image: ubuntu-2004:current
    steps:
      - checkout
      - run:
          name: enable ipv6
          command: |
            cat <<'EOF' | sudo tee /etc/docker/daemon.json
            {
              "ipv6": true,
              "fixed-cidr-v6": "2001:db8:1::/64"
            }
            EOF
            sudo service docker restart

Docker に IPv6 アドレスを割り当てる手法はいくつかあります。1 つは上記のように デーモンを設定する方法、2 つ目は docker network create command コマンドを用いる方法、そして docker-compose を利用する方法です。

Orb

Orb をプライベートにすることはできますか?

コマンドとジョブの違いは何ですか?

commands jobs はいずれも orbs 内で使用可能な要素です。

コマンド には、Orb のロジックを含む一つまたは複数の ステップが含まれます。 コマンドは多くの場合、シェルコード (Bash) を実行します。

ジョブ は、実行するステップやコマンドの定義であり、 かつ、 ステップやコマンドを実行する Executor です。 ジョブはコマンドを呼び出し、 ワークフローを用いてオーケストレーションされています。

Orb はプライベートなインストール環境で使用できますか?

Orb は、CircleCI server v3 でご利用いただけます。 CircleCI server での Orb のインポートと使用に関しては、 CircleCI server v3.x の Orb ガイドを参照して下さい。

CircleCI server v2.19.x では Orb は使用できませんが、コミットの前に設定を処理すると、Orb を変換して使用できます。 コミット前の Git Hook の使用については、 サーバーでの Orb の使用を参照して下さい。

パブリック Orb に関するバグや問題をレポートする方法は?

すべての Orb はオープンソースプロジェクトです。 問題やバグのレポートだけでなく、プルリクエストも Orb の Git リポジトリに対して行えます。 パブリック Orb 作成者は、Orb レジストリ上で Git リポジトリへのリンクを含めるか選択できます。 Git リポジトリへのリンクがない場合は、サポートまでご連絡ください。作成者に連絡いたします。 または、その Orb をフォークして、独自のバージョンをパブリッシュすることもできます。

Orb の最新バージョンを使うにはどうすればいいですか?

Orb にはセマンティックバージョニングが使用されています。つまり、メジャーバージョンを設定すると (例:3 )、マイナーとパッチのすべてのアップデートを受け取ります。静的にバージョンを設定すると(例:3.0.0 )、アップデートは適用されません。これが最も決定論的で推奨される方法です。

Author orbs

作成した Orb を削除できますか?

いいえ。 Orb はデフォルトで公開されており、1つのバージョンの Orb をパブリッシュした後、変更することはできません。 これにより、ユーザーは既知のバージョンの Orb がすべての実行において同じ動作をすると想定することができます。 Orb を削除すると、ユーザーのプロジェクトにおけるパイプラインの失敗につながる恐れがあります。

ただし、Orb を Orb レジストリから除外することは可能です。 除外した Orb は、API または CLI からは見つけられますが、Orb レジストリの検索結果には表示されません。 これは、例えば現在はメンテナンスを行っていない Orb などに適しています。

circleci orb unlist <namespace>/<orb> <true|false> [flags]

ユーザーの API トークンなどの機密情報を保護するにはどうしたらよいですか?

API キーのパラメーターとして env_var_name パラメーター型を使用してください。 このパラメーター型は、有効な POSIX 環境変数名の文字列のみを入力値として受け入れます。 パラメーターの説明で、この環境変数を追加するようにユーザーに指示してください。

このトピックについてもっと読みたい方は、 環境変数名 ベストプラクティス のページを参照してください。

ユーザーに環境変数の追加を求めるにはどうしたらよいですか。

環境変数名のパラメーターを作成してください。 変更できない静的な名前を持つ環境変数でも同じように対応します。 そして、そのパラメーターに正しいデフォルト値を割り当てます。 変更できない環境変数の場合は、その旨をパラメーターの説明に記載します。 また、変更できる環境変数かどうかを問わず、API キーの取得方法をユーザーに示してください。

必須の環境変数はバリデーションすることをお勧めします。 詳しくは、 Orb author ガイドをご覧ください。

このトピックについてもっと読みたい方は、 環境変数名 ベストプラクティス のページを参照してください。

Orb の記述にはどの言語を使用できますか。

Orbsは、 CircleCI YAML コンフィグのパッケージです。

CircleCI Orb では、 再利用可能な CircleCI コンフィグファイルをパッケージ化しています。 例えば、 コマンド は特定の Executorジョブ 内で実行できますが、その Executor は、カスタムジョブでコマンドを使用する場合はユーザーによって、 再利用可能なジョブを使用する場合は Orb 作成者によって定義されます。 ロジックが実行される環境に応じて、使用する言語を決定してください。

コマンド ロジックの記述にはどのプログラミング言語を使用できますか?

移植性と汎用性に最も優れているのは、POSIX 準拠の Bash です。 Orb を共有する予定であれば、この言語を使用することをお勧めします。 ただし、Orb は高い柔軟性を誇り、他のプログラミング言語やツールも自由に実行できます。

Bash とは?

Bash は、すべての Executor において最もよく使用されており、お勧めの言語です。 Bash は、ネイティブの run コマンドを使用して直接、簡単に記述できます。 MacOS と Linux のデフォルトのシェルは Bash になります。

Ruby

steps:
  - run:
    name: Check Ruby shell
    shell: ruby
    command: puts 'hi'

Node

steps:
  - run:
    name: Check Node shell
    shell: node
    command: console.log('node')

Python

steps:
  - run:
    name: Check Python shell
    shell: python3
    command: print('python')

バイナリ

このオプションは、可能な限り使用しないことを強くお勧めします。 時に、CLI ツールなどのリモート バイナリ ファイルをフェッチしなければならない場合があります。 これらのバイナリは、パッケージ マネージャーからフェッチするか、可能な場合は GitHub リリースなどの VCS でホスティングする必要があります。 Homebrew を AWS Serverless Orb の一部としてインストールする例を以下に示します。

steps:
  - run:
    command: >
      curl -fsSL
      "https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh" | bash
      /home/linuxbrew/.linuxbrew/bin/brew shellenv >> "$BASH_ENV"
    name: Install Homebrew (for Linux)

コマンドとジョブのどちらを作成するべきですか?

どちらでもかまいませんが、実行したいタスクによります。

Orb の コマンドは、ユーザーか Orb 開発者がジョブ内で何らかのアクションを実行するために使用します。 コマンド自体は、自身が含まれているジョブを認識しませんが、ユーザーは自由自在にコマンドを使用できます。 コマンドは、CLI アプリケーションを自動的にインストールしたり、インストールと認証を実行したりする場合などに便利です。

ジョブは、特定の実行環境内のステップやジョブの集まりを定義したものです。 ジョブでは通常、実行環境と実行対象のステップを指定するので、自由度はあまりありません。 ジョブは、デプロイなどのタスクを自動化する場合に便利です。 デプロイ ジョブでは、Python などの一般的な実行プラットフォームを選択するだけで、ユーザー コードのチェックアウト、CLI のインストール、デプロイ コマンドの実行を自動的に完了できます。ユーザーが追加の設定を行う必要はほとんど、あるいはまったくありません。

セルフホストランナー

CircleCI でのタスクとジョブの違いを教えてください。

タスクは CircleCI での作業の最小単位です。 あるジョブに 並列実行 が 1 つある場合、それは 1 つのタスクと見なされます。 ジョブに並列実行が n 個あり、n が 1 より大きい場合、そのジョブは n 個のタスクを作成して実行します。

ランナーのリソースクラスとは何ですか? また、リソースクラストークンとは何ですか?

リソースクラスは、CircleCI ジョブとそのジョブを処理するために識別されたランナー (またはコンテナランナー) のタイプを一致させるためのラベルです。 リソースクラスの最初の部分は組織の名前空間です。 たとえば、 circleci/documentation などです。

リソースクラスを使用すると、セルフホストランナーのプールを特定して、特定のリソースにジョブを送信するように設定できます。 たとえば、macOS を実行する複数のマシンと Linux を実行する複数のマシンがある場合、ぞれぞれに対して、 orgname/macOSorgname/linux のリソースクラスを作成することができます。 .circleci/config.yml のジョブレベルでは、リソースクラスに基づいて、ジョブの送信先となるセルフホストランナーのリソースを関連付けることができます。

リソースクラスを作成するたびに、指定したリソースクラスと関連付けられた*リソースクラストークン*が生成されます。 このトークンは、リソースクラスが有効であることを CircleCI が認証する仕組みです。

CircleCI のセルフホストランナーのセキュリティモデルは、どのようになっていますか。

マシンランナーを使うと、セルフホストランナーのインストール時にジョブを実行するユーザーを選択できます。 このユーザーにジョブの実行に必要な権限のみを付与するかどうかは、お客様の判断でお決めいただけます。 コンテナランナーのセキュリティーモデルの詳細については、 コンテナランナー のインストールのページをご覧ください。

マシンランナーを使用するジョブに必要な依存関係をインストールする方法を教えてください。

依存関係をインストールする方法は、主に 2 つあります。

  • ジョブが必要な依存関係をインストールできるようにする

これは最も柔軟性が高い方法ですが、ツールを全体にインストール、または重複しない方法で (作業ディレクトリなどに) ツールをインストールできる権限をジョブに付与する必要があります。

  • マシンランナーがインストールされているマシンに依存関係をプリインストールする

この方法は最も安全な方法ですが、ジョブの依存関係が変わった場合、セルフホストランナーマシンの再設定が必要になります。

どのような接続が必要ですか?

ジョブの取得と実行の際に CircleCI に接続するために、runner.circleci.comcircleci-binary-releases.s3.amazonaws.com へのアウトバウンド HTTPS 接続が必要です。

CircleCI のセルフホストランナーを使用する場合、キャッシュ、ワークスペース、アーティファクトはどのように機能しますか?

キャッシュ、ワークスペース、アーティファクトは、ジョブ間でデータを永続化し、ビルドを迅速化するために導入できる方法です。 これらの 3 つの機能はすべて、セルフホストランナーとの互換性があります。

これらの概念の詳細については、下記をご覧ください。

データの永続化 のページでも、詳細をご確認いただけます。

アーティファクトのストレージを自社で完全に管理したい場合は、組み込みのステップを使用せず、ご希望のストレージバックエンドに直接アーティファクトをアップロードすることをお勧めします。

ジョブ間の状態を管理するためのベストプラクティスを教えてください。

マシンランナーには、ジョブ間の状態に関する厳格な決まりはありません。 マシンランナーはジョブごとに一意の作業ディレクトリを作成し、後で削除するように構成できますが、必須ではありません。 デフォルトでは、ジョブが作業ディレクトリの外にファイルを配置することは制限されていません。

一般的には、再現性が高まるよう、ジョブが状態に依存することは最小限に抑えることをお勧めします。 そのためには、前のジョブの結果に依存せずに確実にジョブが実行されるように、ジョブの最初にクリーンアップステップを配置するのが効果的です。

非アクティブなセルフホストランナーは、どれだけの期間セルフホストランナーのインベントリのページに保持されますか?

CircleCI へのコンタクトが 12 時間ない場合、そのセルフホストランナーは CircleCI Web アプリ のインベントリのページに表示されなくなります。

セルフホストランナーのリソースクラスは削除できますか?

はい、できます。セルフホストランナーのリソースクラスは、 CLI より削除できます。 このアクションは取り消すことができないため、そのリソースクラスとそれに紐づくトークンを永遠に削除して良いか確認してください。

circleci runner resource-class delete <resource-class> --force

セルフホストランナーのリソースクラスの作成、削除、閲覧が可能なのは?

セルフホストランナーのリソースクラスの作成と削除は、VCS プロバイダーの組織管理者が行えます。 CLI を介したリソースクラスリストの閲覧は、リソースクラスが関連付けられている VCS プロバイダーの組織ユーザーであれば誰でも可能です。

ランナーリソースクラストークンは削除できますか?

はい、できます。ランナーリソースクラストークンは、 CLI より削除することができます。 このアクションは取り消すことができないため、そのトークンを永遠に削除して良いか確認してください。 削除されるのはトークンのみであり、リソースクラス自体は削除されないのでご注意ください。

トークンと識別子のリストを取得するには以下を実行します。

circleci runner token list <resource-class name>

トークン自体を削除するには以下を実行します。

circleci runner token delete <token identifier>

ランナーリソースクラストークンは追加で作成できますか?

はい、できます、特定のランナーリソースクラスの追加ランナーリソースクラストークンは CLI から作成できます。

トークンを作成するには以下を実行します。

circleci runner token create <resource-class-name> <nickname>

OSS プロジェクトのメンバーのジョブで、その人が組織のメンバーではない場合、組織のセルフホストランナーを使用できますか。

使用できません。ランナーのリソースクラスを所有する組織に関連付けられていないジョブでそのランナーのリソースクラスを使用することはできません。 組織のメンバーである OSS プロジェクトのメンバーのみがその組織のセルフホストランナーを使うことができます。

テスト分割ジョブのステップが circleci: command not found でエラーになった理由は?

セルフホストランナーでは、すべてのコマンドで circleci-agent を使用しますが、クラウド版 CircleCI では、テスト分割やステップ停止などのコマンドで circleci-agent または circleci のいずれかを使用します。 circleci CircleCI のローカル CLI と混同しないようご注意ください。circleci は、単に circleci-agent の別名です。

テストコマンドを circleci-agent にプロキシできるようにするためにセルフホストランナージョブで CircleCI のローカル CLI を使用したい場合は、ジョブのステップから CLI をインストールしてください。 マシンランナー用のマシンに CLI を 依存関係 としてインストールするか、コンテナランナーの Docker イメージに含めます。

コンテナランナーに関してよく寄せられるご質問

ここでは、CircleCI のコンテナランナーに関してよく寄せられるご質問にお答えします。

1 つのコンテナランナーのデプロイで使用できるリソースクラスは 1 つだけですか?

いいえ。コンテナランナーのデプロイにはリソースクラスをいくつでも使用できます。 コンテナランナーでジョブを正常に実行するには、少なくとも 1 つのリソースクラスが必要です。

コンテナランナーで使用されるのは、プッシュベースモデルとプルベースモデルのどちらですか?

コンテナランナーはプルベースモデルを使用します。

コンテナランナーを使って、現在使用中の Kubernetes クラスタをスケーリングできますか?

コンテナランナー自体が単一のレプリカセットを独自にデプロイし、スケーリングは今のところ必要ありません。 コンテナランナーが Kubernetes クラスタ自体をスケーリングすることはありません。 ただし、クラスタ内に利用可能なリソースがあれば、作業をスケジュールします。

クラスタスケーリングのシグナルとして queue depth API の使用をご検討ください。

コンテナランナーが扱える同時実行タスクの数に上限はありますか?

コンテナランナーは、ランナーの最大同時実行数を上限として作業を要求およびスケジュールします。 また、デフォルトでは、コンテナランナーは最大 20 個のタスクを同時にスケジュールおよび実行できるように設定されています。 ご利用のランナーで 20 個を上回る同時実行数が許可されている場合は、Helm を使用して別の値に設定できます。 コンテナランナーページの agent.maxConcurrentTasks パラメータを参照してください。

組織でのランナーの同時実行制限数は、既存の machine セルフホストランナーと共有されます。 組織で使用しているランナーの同時実行制限数がわからない場合は、CircleCI の担当者にお問い合わせいただくか、 サポートチケット をお送りください。

リモート Docker または Docker in Docker (DIND) を介してコンテナランナーで Docker イメージをビルドすることは可能ですか?

詳細については、 コンテナイメージのビルド をお読みください。

Kubernetes 以外をコンテナランナーで使用できますか?

現時点では使用できません。 Kubernetes と Helm をご使用いただく必要があります。

コンテナランナーでは特定の Kubernetes プロバイダーを使用する必要がありますか?

いいえ、どの Kubernetes プロバイダーもご利用いただけます。

コンテナランナーは、Pod をデプロイしたクラスタに置く必要がありますか?

現時点ではその必要があります。

コンテナランナーをインストールできるプラットフォームを教えてください。

コンテナランナーとタスクを実行する Pod をインストールできるのは amd64 と arm64 Linux です。

コンテナランナーは arm64 Docker イメージをサポートしていますか?

はい、コンテナランナーは amd64 イメージか arm64 Docker イメージのいずれかを使用するジョブ、および amd64 ノードや arm64 ノードが混在する Kubernetes クラスタを使用するジョブをサポートしています。 特定のアーキテクチャ用にビルドされたイメージを使用する場合、その CPU アーキテクチャを持つノードをターゲットにするようにリソースクラスを設定する必要があります。 Kubernetes では複数のノードラベルが自動的に用意され、ジョブのリソースクラスの Pod の仕様が正しいノードにデプロイされるように設定する際に役立ちます。 下記の例はリソースクラスの設定例です。 これらのラベルの詳細については、 Kubernetes のドキュメント を参照してください。

agent:
   resourceClasses:
      <amd64 image resource class>:
         token: <amd64 resource class token>
         spec:
            nodeSelector: # nodeSelector will cause this resource class to only create pods on nodes with the specified labels and values
               kubernetes.io/arch=amd64

      <arm64 image resource class>:
         token: <arm64 resource class token>
         spec:
            nodeSelector:
               kubernetes.io/arch=arm64

      <multiarchitecture image resource class>: # note no nodeSelector is defined for the multiarchitecture image resource class
         token: <multiarchitecture resource class token>

コンテナランナーのアンインストール方法を教えてください。

container-agent デプロイをアンインストールするには、次を実行します。

$ helm uninstall container-agent

このコマンドは、チャートに関連付けられた Kubernetes オブジェクトをすべて削除し、リリースを削除します。

コンテナランナーは、CircleCI の既存のセルフホストランナーの代わりとなる機能ですか。

いいえ、コンテナランナーは、マシンランナーを補完するための機能です。 コンテナランナーとマシンランナーが両方あることで、CircleCI のお客様は、CircleCI のクラウドプラットフォームの場合と同じように、実行環境を柔軟に選べます (コンテナまたはマシン)。

agent.ReplicaCount を増やすとどうなりますか。

現時点では、Kubernetes が追加のコンテナランナーをデプロイしようとします。 このシナリオはテストがまだ完了しておらず、期待どおりに動作しない可能性があるため、現時点では推奨されません。

1 つの Kubernetes クラスタに 2 つのコンテナランナーをデプロイした場合、 agent.maxConcurrentTasks パラメーターはどのように適用されますか。

agent.maxConcurrentTasks パラメーターは、各エージェントに個別に適用されます。 ただし、1 つの Kubernetes クラスタに複数のコンテナランナーをデプロイすることは、現時点では推奨されません。

最新の Helm チャートへのアップグレード方法は?

Helm チャートの更新内容は、次のコマンドを使用して 適用 できます。

$ helm repo update
$ helm upgrade container-agent

コンテナランナーのバージョンはどのように更新されますか?

コンテナランナーは、コンテナランナーアプリケーションおよび Helm チャートでインストールしたどちらの場合も セマンティックバージョニング を使用します。 コンテナランナーのイメージ には、メジャーバージョンとマイナーバージョンごとにフローティングタグが用意されています。このタグは、各バージョンの最新リリースと、マイナーバージョンの特定のパッチリリースを示す完全修飾タグを指定します。

コンテナランナーのバージョンはどのようにサポートされますか?

コンテナランナーアプリケーションは、同じメジャーバージョンにおけるリリースとの下位互換性と最新のマイナーバージョンにおける脆弱性やバグに対するサポートを保証します。 コンテナランナーの Helm チャートでは、同じメジャーバージョン内の値ファイルとの下位互換性を保証します。

コンテナランナーについてセキュリティ上の注意事項はありますか?

コンテナランナーでは、マシンランナーと同じく、コンテナランナーをホストするインフラストラクチャ内でユーザーが任意のコードを実行できます。つまり悪意のある攻撃者が、内部システムに関する情報を得るためにこれを悪用する可能性があります。 このリスクを軽減するため、セキュリティに関するすべてのベストプラクティスに従ってください。

IAM ロールを使って ECR からのイメージのプルを承認するにはどうすればよいですか?

IAM ロールは、 AWS ドキュメント に従って、コンテナランナーで使用するサービスアカウントに関連付けることができます。 ジョブの設定ファイルのイメージで AWS 認証情報が指定されている場合、コンテナランナーのサービスアカウントに付与されている IAM ロールの代わりに AWS 認証情報が使用されます。 コンテナランナーのサービスアカウントの詳細については、 コンテナランナー を参照してください。

コンテナランナーを使った設定ファイルのフルサンプルはありますか?

CI ジョブを Kubernetes を使わずにコンテナ内で実行したい場合は、Docker がインストールされた マシンランナー を使用できます。

マシンランナーに関してよく寄せられるご質問

ここでは、CircleCI のマシンランナーに関してよく寄せられるご質問に回答します。

セルフホストランナーをインストールしたホストがジョブを実行しているかどうかを確認する方法は?

現時点では、以下のコマンドを使ってホストをクエリすることを推奨します。

ps aux | pgrep -f circleci-launch-agent

上記コマンドの結果、3 つ以上のプロセスが返された場合、セルフホストランナーがタスクを実行していると想定できます。

grep プロセス自体も 1 つのプロセスとしてカウントされ、 ローンチエージェント プロセスは別のプロセスとしてカウントされるため、必ず 2 つを超える数のプロセスがあることを確認してください。

パイプライン

.circleci/config.yml を複数のファイルに分割することはできますか?

.circleci/config.yml を複数のファイルに分割する機能は今のところ提供していません。 詳細については、 サポートの記事を参照してください。

設定ファイルの分割機能は提供していませんが、CircleCI ではダイナミックコンフィグ機能を提供しています。この機能により、特定のパイプラインやパスに基づき設定ファイルを作成することができます。 詳細は、 ダイナミックコンフィグを参照して下さい。

パイプラインを使ってフォークされた PR をトリガーできますか?

CircleCI API v2 を使って、フォークされたリポジトリからパイプラインをトリガーし PR をビルドできます。 しかしデフォルトでは、フォークされたリポジトリからの PR をビルドしません。 この機能を有効にするには、Web アプリで 「Project Settings プロジェクト設定」> 「Advanced」 に移動します。 詳細については、 サポートの記事を参照してください。

パイプラインのスケジューリング

既存のワークフローのスケジュール実行をパイプラインのスケジュール実行に移行することはできますか?

はい、できます。詳細については、 パイプラインのスケジュール実行への移行 を参照してください。

作成したスケジュールはどうやって探せば良いですか?

スケジュール化されたパイプラインは CircleCI に直接保存されるため、スケジュール毎に関連付けされた UUID があります。 作成したスケジュールは、プロジェクト設定のトリガー(Triggers)のページで閲覧できます。 一つのプロジェクトの配下のすべてのスケジュールをリストアップすることも可能です。

curl --location --request GET "https://circleci.com/api/v2/project/<project-slug>/schedule" \
--header "circle-token: <PERSONAL_API_KEY>"

GitHub および Bitbucket ユーザーの場合: project-slug は、例えば、gh/CircleCI-Public/api-preview-docs のような vcs-type/org-name/repo-name の形式を取ります。

パイプラインのスケジュール実行の際に使われるタイムゾーンは?

スケジュールの指定は、UTC 協定世界時のタイムゾーンに基づきます。

パイプラインを指定した日時にスケジュール実行することは可能ですか?

はい、できます。 スケジュールされたパイプラインは、 CircleCIウェブアプリ、または CircleCI API v2を使って設定できます。

現在 ワークフローのスケジュール実行機能を使用されている場合は、 移行ガイドを参照し、ワークフローのスケジュール実行をパイプラインのスケジュール実行に更新してください。

スケジュールを設定したパイプラインは、指定した時間どおりに正確に実行されますか?

スケジュールの正確性については保証できません。 スケジュールは、設定した時間にコミットがプッシュされたとして実行されます。

パイプラインのスケジュール実行が思っていたより遅いのはなぜですか?

Cron 式と比較して、パイプラインのスケージュール実行にはスケジュール方法に微妙な違いがあります。

たとえば、08:00 (協定世界時) のスケジュールを 1 時間に 1 回と指定すると、このスケジュールされたパイプラインは 08:00 ~ 09:00 (協定世界時) の間に 1 回実行されます。 これは 08:00 (協定世界時) ちょうどに実行されるという意味ではないのでご注意ください。

このパイプラインのスケジュール実行は、その後は常に最初の実行と同じ時間に実行されます。 つまり、最初にスケジュールされたパイプラインが 08:11 (協定世界時) に実行された場合、その次も 08:11 (協定世界時) に実行されます。

正規表現に対応していますか?

現在対応していません。 パイプラインのスケジュール実行には、Webhook、API 呼び出し、スケジュールに含まれるコミット SHA、ブランチ、タグ (完全認証、正規表現なし) などの高度に決定論的な入力が必要です。

ワークフロー機能

同時に実行できるジョブの数はいくつですか?

同時に実行できるジョブの数は ご利用されているプランによって異なります。 ワークフローを使ってジョブをスケジュール化する場合、 ファンアウトとファンイン方法によりジョブの同時実行が可能です。

1 つのワークフローで複数の Executor タイプを使用できますか?

はい、使用できます。 サンプル設定ファイルのページで設定例をご確認ください。

変更のあったジョブのみをビルドできますか?

リポジトリの特定の更新に基づきジョブを条件付きで実行するようにワークフローを設定できます。 条件付きワークフロー ダイナミックコンフィグで行うことができます。 ダイナミックコンフィグを使うと、CircleCI の設定ファイルやパイプラインパラメーターが動的に生成され、結果の作業が同じパイプライン内で実行されます。

ダイナミックコンフィグ

パイプラインパラメーターは API でしか使用できないのではありませんか?

以前は、パイプラインパラメーターは API でしか使用できませんでしたが、 今では、ダイナミックコンフィグ機能を使用すると、パイプラインが実行される (API または Webhook のいずれかからトリガーされる、つまり VCS へのプッシュイベント) 前に、パイプラインパラメーターを動的に設定できるようになりました。

カスタム Executor を使用できますか?

カスタム Executor は使用できますが、continuation ステップが機能するように、特定の依存関係をインストールする必要があります (現時点: curljq)。

continuation orb とは?

continuation Orb は、パイプラインの続行プロセスを管理できるようにユーザーを支援します。 continuation Orb は、 continuePipeline に対する API 呼び出しをラップします。 詳細については、 continuation Orb のドキュメントを参照してください。

continuation orb を使用しないことは可能ですか?

continuation Orb でカバーされない特別な要件がある場合は、他の方法で同じ機能を実装することができます。 Orb を使って続行機能がどのように実装されているかを学習するには、 Orb Source を参照してください。

料金・支払い

CircleCI のご利用プランの詳細については、 料金ページをご覧ください。

クレジットとは何ですか?

クレジットは、マシンのタイプとサイズに基づく使用料の支払いに充てられます。 また、Docker レイヤー キャッシュなどの有料機能を使用したときにも消費されます。

たとえば、毎分 10 クレジットのレートで Docker または Linux の Medium コンピューティングオプションを利用する場合、25,000 クレジットのパッケージでは 2,500 分のビルドが可能です。 CircleCI ではパフォーマンス (開発者の生産性の向上) と価値を備えた最適なビルドを行なっていただけるよう複数のコンピューティングサイズを提供しています。

必要に応じて、並列実行を使用するとビルド時間をさらに短縮できます。並列実行により、ジョブを複数のテストに分割し、同時に実行できます。 2 倍の並列実行により、通常 2,500 分で実行されるビルドが 1,250 分で実行できるため、開発者の生産性がさらに向上します。 2つの Executor がそれぞれ 1,250 分間並行して実行している場合、合計ビルド時間は 2,500 分になります。

クレジットを購入するには? 必要な分だけ購入することは可能ですか?

選択したクレジットパッケージの料金が、毎月初めに請求されます。

支払う料金の内訳はどのようになっていますか?

プレミアム機能を利用するアクティブユーザーの人数分の料金、コンピューティングに対する料金のほか、Premium サポートを利用している場合はその料金も含まれます。

  • マシンサイズを選べる機能などを利用するには、1アクティブ ユーザーあたり月額 25,000 クレジット (税抜) が必要です。

  • コンピューティングの月額料金は、マシンのサイズと使用時間に基づいて、クレジットで支払われます。

    • 25,000 クレジットで 1 パッケージとなっており、1 パッケージは 15 ドル (税抜) です。

    • クレジットは毎月持ち越され、1 年後に失効します。

  • Docker レイヤー キャッシュ (DLC) の料金は、コンピューティングと同じく、使用量に基づいてクレジットで支払われます。

クレジットを使い切るとどうなりますか?

Performance プランでは、0 クレジットになると、25% のクレジットサブスクリプション (最低 25,000 クレジット) が補充されます。 たとえば、毎月のパッケージ サイズが 100,000 クレジットの場合には、残りが 2,000 クレジットになると、25,000 クレジットが自動的にチャージされます (1 クレジットあたり税抜 0.0006 ドル)。

アカウントで補充が繰り返し行われている場合は、 CircleCI ウェブアプリにログインし、Plan > Plan Usage をクリックしクレジットの使用量を確認してください。 多くの場合、クレジットパッケージを増やすことにより補充の繰り返しを最小限に抑えることができます。 プランを管理するには、 Plan Overview をクリックしてください。

Free プランでは、クレジットがなくなるとジョブの実行に失敗します。

クレジットに有効期限はありますか?

Performance プランのクレジットは、購入後 1 年で失効します。 アカウントのサブスクリプションを停止した場合も、未使用のクレジットは失効します。

支払い方法は?

毎月の料金は CircleCI アプリ内で支払えます。

支払いのスケジュールは?

Performance プランでは、請求サイクルの初日に、Premium サポートの料金と毎月のクレジットパッケージの料金が請求されます。 その月の間にクレジットが補充された場合 (利用可能なクレジットがが0になったときに25%で自動補充する場合など) は、補充時に支払いが行われます。

プリペイド課金とは何ですか?

プリペイド課金は、Performance プランのお客様向けの支払いオプションです。 プリペイド課金では、クレジットを一括購入し、前払いすることができ、購入量に応じたクレジットの割引価格を得ることができます。

プリペイド課金にするにはどうしたらいいのですか?

すべての Performance プランをご利用のお客様の皆様には、CircleCIウェブアプリからプリペイド課金にすることを選択できます。 このオプションにアクセスするには、次の手順に従います:

  1. CircleCI の Web アプリで Plan を選択する

  2. Manage タブを選択します

  3. プリペイド課金への切り替えを開始するには、Set up and switchを選択します

月額課金のクレジットが残っていますが、今からプリペイド課金にするとどうなりますか?

以前に購入されたクレジットは引き続き利用でき、12ヶ月の有効期限も残ります。

プリペイド課金を選択したが、割引が適応されていません。 どうしてでしょうか?

プリペイド課金の割引は、購入数量が500万クレジットから開始されます。

プリペイドクレジットを使い切った場合はどうなりますか?

現在の Performance プランと同様に、クレジットが不足すると、クレジットパッケージは選択した購入レベルで自動的に更新されます。

プリペイド課金の購入代金はいつ請求されますか?

プリペイド方式を選択した場合、クレジットカードに即時課金され、その後、 クレジットが不足した場合、再度クレジットカードに課金され、補充されます。

今後予定しているプリペイド課金リフィルを変更したいのですが、どうすればよいですか?

適用するには以下の手順を実行します。

  1. CircleCI の Web アプリで Plan を選択する

  2. Manage タブを選択します

  3. 自動リフィルレートを編集するには、Creditsセクションの鉛筆アイコンをクリックします。

プリペイド課金でもボーナス 30,000 クレジットと無料の5のユーザーシートはもらえるのでしょうか?

はい、プリペイド課金のお客様には、毎月30,000クレジットと5つの無料ユーザーシートの特典を引き続きご提供いたします。

複数の組織で契約プランを共有できますか? その場合、請求を 1 箇所にまとめることは?

もちろん可能です。CircleCI アプリのサイドバーから Plan を選択し、Share & Transfer をクリックします。

Free プラン以外のプランでは、Add Shared Organization (共有組織の追加オプション) を使用して、管理者アクセス権を持つフリープランの組織とプランを共有することができます。 プランを共有するすべての組織が「Share & Transfer」のページに記載され、子組織のすべてのクレジットとその他の利用料金が親組織に請求されます。

Free プラン以外のプランでは、Transfer Plan オプションによりお客様が管理者としてのアクセス権を持つ他の Free プランの組織にお客様のプランを譲渡することができます。 有料プランを別の組織に譲渡した場合、お客様の組織は Free プランにダウングレードされます。

コンテナの使用時間が 1 分未満でも、1 分間分の料金が計上されますか?

はい、その場合でも 1 分間分の料金をお支払いいただく必要があります。 1 分未満の秒単位は切り上げてクレジットを計算します。

1ヶ月のストレージ使用料金とネットワーク料金の計算方法は?

CircleCI アプリで Plan > Plan Usage に移動して、お客様のストレージとネットワークの使用状況を確認し、毎月のストレージとネットワークの料金を計算します。

ストレージ

日々の使用量から 1ヶ月のストレージ料金を計算するには、 Storage タブをクリックし、組織の月間の割り当て GB を超過していないかを確認します。 超過分(GB-Months/TB-Months)に 420 クレジットを乗じることで、1ヶ月の料金を見積もることができます。 計算例:2 GB-Months の超過 x 420 クレジット = 840 クレジット (0.5 ドル)。

ネットワーク

ネットワークの使用に対する課金は、CircleCI からセルフホストランナーへのトラフィックに対してのみ適用されます。 詳しくは、 データの永続化の概要のページをご覧ください。

超過分(GB/TB)に 420 クレジットを乗じることで、その月の料金を見積もることができます。 計算例:2 GB-Months の超過 x 420 クレジット = 840 クレジット (0.5 ドル)。

1ヶ月の IP アドレスの範囲機能料金の計算方法は?

1ヶ月の IP アドレスの範囲機能の料金は、 CircleCI アプリで Plan > Plan Usage に移動し、IP アドレスの範囲機能の利用状況を確認して計算します。

IP アドレスの範囲機能の使用状況 のサマリーに加えて、 IP Ranges タブに移動するとお客様のデータ使用状況の詳細を確認できます。 このタブでは、IP アドレスの範囲機能の使用量の値は、 IP アドレスの範囲機能が有効なジョブの実行中の Docker コンテナ内外の未加工のバイト数を表します。

このバイト数には、ジョブの全体のネットワーク通信および Docker コンテナの送受信に使われるバイトも含まれます。 IP アドレスの範囲機能が有効なジョブにおいて、ジョブの実行の開始前に Docker イメージをコンテナにプルするために使用されるデータに対しては料金は発生しません 。

この機能は、IP アドレスの範囲機能が有効なジョブで使用されるデータ 1 GB ごとに、お客様のアカウントから 450 クレジットを消費します。 Job Details UI ページの Resources タブで各ジョブの IP アドレスの範囲機能の使用状況の詳細をご覧いただけます。 詳しくは、 IP アドレスの範囲機能のページをご覧ください。

有効化する前に 1ヶ月の IP アドレスの範囲機能の料金を見積もるにはどうすれば良いですか?

Job Details の UI ページの Resources タブから、すべての Docker ジョブ (リモート Docker を除く) の概算ネットワーク通信量を確認できます。 GB になっていない場合は GB に変換し、450 クレジットを乗じて Docker ジョブで IP アドレスの範囲機能を有効にする場合の概算コストをお見積もりください。

アクティブユーザー単位の料金が設定されているのはなぜですか?

クレジットは、コンピューティングの利用に対して消費されます。 CircleCI は、できるだけコストを抑えながら、CI の基本的な推奨事項である「頻繁なジョブ実行」を行っていただくことを目指しています。 アクティブユーザー単位で設定しているのは、プラットフォーム機能とジョブオーケストレーションの利用に対する料金です。 たとえば、依存関係のキャッシュ、アーティファクトのキャッシュ、ワークスペースなどがあり、いずれの機能も追加のコンピューティングコストをかけずにビルド時間を短縮するのに役立ちます。

アクティブユーザーの定義を教えてください。

アクティブユーザー(active user)とは、非 OSS プロジェクトでコンピューティングリソースの使用をトリガーするユーザーのことです。 次のようなアクティビティが含まれます。

  • ビルドをトリガーするユーザーからのコミット (PR マージ コミットを含む)

  • CircleCI の Web アプリケーションでのジョブの再実行 ( SSH デバッグを含む)

  • 手動承認後に処理を続行するワークフロージョブの手動承認 (承認者はすべてのダウンストリームジョブの実行者と見なされる)

  • スケジュールされたワークフローの使用

  • マシンユーザー

アクティブ ユーザーの一覧は、CircleCI の Web アプリケーションにログインし、[Settings (設定)] > [Plan Usage (プランの使用状況)] の順に移動して、[Users (ユーザー)] タブで確認できます。

ジョブが「Queued」または「Preparing」の場合、課金されますか?

いいえ。 ジョブが "queued (キューイング中)"と通知された場合、ジョブがプランや同時実行の制限により待機状態になっていることを意味しています。 ジョブが "preparing (準備中)" の場合は、CircleCI がセットアップを行っているか、ジョブの実行を 開始 しようとしているため間もなく実行される可能性があります。

有料プランの更新日はいつですか?

CircleCI からの請求が発生する以下の日付に加え、有料プランへのアップグレードや別の有料プランへの変更をして初めてクレジットカードで決済した日付が、更新日として設定されます。

  • 月間プランでは、毎月の月額料金の請求日が更新日になります。

  • 年間プランでは、年に一度の年額料金の請求日が更新日になります。

  • 年間プランをご利用中でも、ユーザーの追加やクレジットの補充によって未払い残高が発生した場合は、その月の最終日が更新日になります。

  • Performance プランでは、クレジットの残りが設定された最小値を下回った場合、自動的にクレジットが購入されます。

オープンソースプロジェクト向けのクレジットベースプランはありますか?

Free プランを利用されているオープンソースの組織には、Linux オープンソースプロジェクトに使用できる 400,000 クレジットが毎月無料で付与されます。 使用できるオープンソースクレジットの量や制限は、UI 画面上では確認できません。

Performance プランのオープンソースプロジェクトで割引を受けるにはどうすればよいですか?

現在、Performance プランでオープンソースをご利用のお客様への割引は行っていません。

Docker レイヤー キャッシュの利用に料金が発生するのはなぜですか?

Docker レイヤー キャッシュ (DLC) は、変更のあった Docker レイヤーのみを再ビルドすることで、Docker イメージをビルドするパイプラインでのビルド時間を削減する機能です (DLC の詳細は こちら)。 DLC は 1 回のジョブ実行につき 200 クレジットを消費します。

お客様に DLC を安心してご利用いただくために、CircleCI ではいくつかの処理を行っています。 ソリッドステートドライブを使用し、キャッシュをゾーン間で複製し、DLC を利用可能な状態にします。

DLC のご利用金額を見積もるには、設定ファイル内の Docker レイヤーキャッシュが有効になっているジョブと、それらのジョブでビルドしている Docker イメージの数を確認してください。 設定ファイルにジョブが 1 度だけ記述されている場合でも、たとえば並列実行を有効にした場合は、そのジョブがパイプラインで複数回実行される場合もあります。

Performance プランのキャンセル

Performance プランを解約するにはどうすればよいですか?

ご利用中の Performance プランを解約するには、CircleCI 組織の管理者アクセスが必要です。

  1. CircleCI Web アプリで、左側のサイドバーにある [Plan (プラン)] をクリックして [Billing (請求)] タブを開きます。

  2. ページ下部にある [Looking to cancel your plan? (プランの解約)] をクリックします。

  3. [Cancel (解約)] をクリックします。 画面の指示に従って解約を完了します。

自分が CircleCI 組織の管理者であるかどうかを確認するにはどうすればよいですか?

GitHub ユーザーの場合は、アカウントに GitHub 組織の "Owner (所有者)" ロールが付与されます。

Bitbucket ユーザーの場合は、アカウントに Bitbucket リポジトリの "Admin (管理者)" 権限が付与されます。

GitLab ユーザーの場合は、CircleCI Web アプリの [Organization Settings (組織設定)> [People (メンバー)]] で、アカウントが "Org Admin (組織管理者)" として表示されます。

Performance プランを解約するとどうなりますか?

現在の請求期間が終わるまでは、引き続き CircleCI Web アプリの Performance プラン設定にアクセス可能であり、クレジットもご利用いただけます。 請求期間が終了すると、組織のプランが Free プランに切り替わり、1 か月に使用可能なクレジットの上限が 30,000 になります。

なお、現在の請求期間が終了すると、請求書にアクセスできなくなります。 その前に請求書をダウンロードするようご注意ください。

プランを解約した場合、未使用のクレジットはどうなりますか?

請求期間の終了時点で未使用のクレジットは失われます。返金の対象にはなりません。

Performance プランの解約後に再び有効化することはできますか?

はい。CircleCI Web アプリの [Plan (プラン)] > [Overview (概要)] で、いつでも Performance プランにご登録いただけます。


Suggest an edit to this page

Make a contribution
Learn how to contribute