複数のワークフローを使ったパイプラインをスケジュール実行
はじめに
スケジュール化されたパイプラインは、トリガーされたパイプラインであるため、設定ファイル内のすべてのワークフローが実行されます。 条件を設定することにより、スケジュール化したパイプラインを実行したい場合のみ実行することができます。 その方法には、定義済みのパイプライン値を使う方法と、カスタムパイプラインパラメーターを使う方法があります。
定義済みのパイプライン値を使ったフィルタリング
ワークフローのフィルタリングを実装するための 1 つの方法は、パイプライン値を使用することです。 以下の例では、定義済みパイプライン値である pipeline.trigger_source
と pipeline.schedule.name
を使用しています。
daily-run-workflow:
when:
and:
- equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
- equal: [ "my schedule name", << pipeline.schedule.name >> ]
jobs:
- test
- build
上記の例の when
の下の2番目の equal
は必ずしも必要ではありません。 pipeline.schedule.name
は、パイプラインがスケジュールによってトリガーされる場合に使用できるパイプライン値です。
スケジュールがトリガーされる時に 実行しない ワークフローのフィルタリングを追加することもできます。
daily-run-workflow:
when:
and:
- equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
- equal: [ "my schedule name", << pipeline.schedule.name >> ]
jobs:
- test
- build
other-workflow:
when:
not:
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
jobs:
- build
- deploy
パイプラインの全リストは、 パイプライン値とパラメーター のページでご確認ください。
パイプラインパラメーターを使ったフィルタリング
複数のワークフローを使ってパイプラインのスケジュール実行を設定するには、パイプラインパラメーターを使用する必要があります。 下記の例では、 run-schedule
というパラメーターが作成され、type: boolean
および default: false
と設定されています。 これにより、ワークフローのセクションで when
を使っていつパイプラインを実行するかの条件を指定できます。 when
条件を使用する場合は、以下の例のように when: not:
も設定する必要があります。
version: 2.1
orbs:
android: circleci/android@1.0.3
jobs:
build-library:
executor:
name: android/android-machine
resource-class: xlarge
steps:
- checkout
- run:
name: Assemble library
command: ./gradlew clean
# set pipeline parameters
parameters:
run-schedule:
type: boolean
default: false
workflows:
# do not run the scheduled pipeline if build-test-deploy
build-test-deploy:
when:
not: << pipeline.parameters.run-schedule >>
jobs:
- android/run-ui-tests:
name: build-and-test
system-image: system-images;android-23;google_apis;x86
test-command: ./gradlew assemble sample:connectedDebugAndroidTest
# run the scheduled pipeline if nightly-snapshot
nightly-snapshot:
when: << pipeline.parameters.run-schedule >>
jobs:
- android/run-ui-tests:
name: build-and-test
system-image: system-images;android-23;google_apis;x86
test-command: ./gradlew assemble sample:connectedDebugAndroidTest
この設定ファイルサンプルの全文は、GitHub 上の サンプルプロジェクト をご覧ください。 パイプラインパラメーターの全リストは、 パイプラインの値とパラメーター でご確認ください。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.