同時実行
同時実行
CircleCI では、ジョブの同時実行は下記の 2 つの状況に分られます。
-
1 つのワークフロー内に設定された複数の実行ジョブ
-
組織内の複数のメンバーが実行する複数のワークフロー
ここでは 1 つ目の状況について説明し、1 つのワークフロー内に複数のジョブを設定する方法の例を紹介します。 ワークフロー内で同時実行を設定すると、単一のワークフロー内で複数のコンテナを使用して複数のジョブを同時に実行することができます。
CircleCI のすべてのお客様がシステムを安定した状態で利用できるよう、各 Executor の リソースクラス ごとに同時実行数のソフト制限が設けられています。
ジョブがキューに入る場合、この制限に達している可能性が考えられます。 制限に達する理由は、組織内で同時にジョブを実行しているユーザーの数や、ワークフローが重複しているなど、複数の要因があります。
Performance プラン または Scale プランのお客様は、追加料金なくこの制限の拡大を依頼することができます。 CircleCI サポート にご連絡ください。
ワークフロー内での同時実行
一連の同時実行ジョブを実行するには、既存の .circleci/config.yml
ファイルに workflows
セクションを追加する必要があります。
以下は、2 つの同時実行ジョブから成るデフォルトのワークフローオーケストレーションのシンプルな例です。 この workflows
キーには一意の名前を指定する必要があります。 この例では、一意の名前は build_and_test
です。 jobs
キーは一意の名前のワークフローの下にネストされ、ジョブ名のリストが含まれます。 ジョブには依存関係が定義されていないため、同時に実行されます。
version: 2.1
jobs:
build:
docker:
- image: cimg/<language>:<version TAG>
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
steps:
- checkout
- run: <command>
test:
docker:
- image: cimg/<language>:<version TAG>
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
steps:
- checkout
- run: <command>
workflows:
build_and_test:
jobs:
- build
- test
Server 2 で version: 2
をご使用の場合は、 workflows
のセクションで再びバージョンを下記のスニペットのように指定する必要があるのでご注意ください。
...
workflows:
version: 2
build_and_test:
jobs:
- build
- test
...
ファンアウト/ファンイン ワークフローの例
同時実行ワークフローを使ったより複雑な例では、共通のビルドジョブを実行し、次にファンアウトして一連の受け入れテストジョブを同時に実行し、最後にファンインして共通のデプロイジョブを実行します。 その流れは以下の通りです。

下記の .circleci/config.yml
スニペットは、ファンイン・ファンアウトジョブの実行が設定された workflows
の例です。 この例では、build
ジョブが成功した後すぐに 4 つの受け入れテスト jobs
がスタートします。 4 つの acceptance_test ジョブすべてが成功するのを待って、 deploy
ジョブが実行されます。
...
workflows:
build_accept_deploy:
jobs:
- build
- acceptance_test_1:
requires:
- build
- acceptance_test_2:
requires:
- build
- acceptance_test_3:
requires:
- build
- acceptance_test_4:
requires:
- build
- deploy:
requires:
- acceptance_test_1
- acceptance_test_2
- acceptance_test_3
- acceptance_test_4
...
ワークフロー内での同時実行 で述べたように、Server 2 で version: 2
をご使用の場合は、 workflows
のセクションでバージョンを指定する必要があるのでご注意ください。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか?
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、サポートサイトから、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。

CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.