ステージを持つPipelineの設定
ステージを含むPipelineの設定は、bitrise.ymlファイルを直接編集する方法でのみ可能です。WorkflowsはグラフィカルなWorkflow Editorで作成・変更できますが、PipelinesとステージはYAML形式で定義する必要があります。
ステージを使ったPipelinesの定義Click to copy link
bitrise.ymlファイルにはPipelinesの全体設定が含まれます。他のすべてのbitrise.ymlファイルと同様に、まずフォーマットバージョンとプロジェクトタイプを定義する必要があります。
---
format_version: '8'
default_step_lib_source:
project_type: android
これはbitrise.ymlの最小限の設定です。Pipelinesを定義するには、pipelines属性を使用する必要があります。
pipelines:
pipeline-successful:
stages:
- stage-successful-1: {}
- stage-successful-2: {}
- stage-successful-3: {}
この例では、pipeline-successfulという名前のPipelineがあり、3つのステージが順番に実行されます。つまり、stage-successful-1が正常に終了するとstage-successful-2が開始します。いずれかのステージが失敗した場合、後続のステージは開始されません。その代わりに、Pipelineは中止され、失敗としてマークされます。
各ステージはstages属性の下で個別に定義する必要があります。ステージを定義するとは、そのステージに含まれるWorkflowsを指定することを意味します。
stages:
stage-successful-1:
workflows:
- test-1: {}
stage-successful-2:
workflows:
- build-1: {}
- build-2: {}
stage-successful-3:
workflows:
- deploy-1: {}
- deploy-2: {}
この例では、ステージはtest-1、build-1、build-2、deploy-1、deploy-2のWorkflowsを実行します。
常に実行されるようにステージを設定するClick to copy link
デフォルトでは、ステージが失敗した場合(Workflowsのいずれかが失敗したため)、Pipelineの後続のステージは実行されません。ただし、Pipelineが中止されない限り特定のステージを実行するようにPipelineを設定できます。
そのためには、ステージのshould_always_run属性をtrueに設定するだけです。
stages:
stage-always-run-successful-1:
should_always_run: true
workflows:
- deploy-1: {}
- deploy-2: {}
上記の例では、stage-always-run-successful-1という名前のステージは、それ以前のステージの状態にかかわらず常に実行されます。これらのステージが実行されない唯一のケースは、ユーザーがPipelineビルドを中止した場合です。
失敗したステージのWorkflowsを中止するClick to copy link
デフォルトでは、特定のステージ内のWorkflowが失敗しても、同じステージ内の他のWorkflowsは自動的には中止されません。これらのWorkflowsは実行されますが、次のステージは開始されません。ただし、この動作を変更して、同じステージ内の他のすべてのWorkflowsを即座に自動的に中止することもできます。
そのためには、abort_on_fail属性をtrueに設定する必要があります。
stages:
stage-abort-on-fail-1:
abort_on_fail: true
workflows:
- deploy-1: {}
- deploy-2: {}
Pipelineステージ間での環境変数の共有Click to copy link
Share Pipeline variablesStepを使用すると、Workflowの任意の環境変数を後続のWorkflowsで再利用できます。
Share Pipeline variablesStepとrun_if式を組み合わせることで、オプションのWorkflowsを持つPipelinesを簡単に作成できます。詳細については、Stepを条件付きで有効化または無効化するをご確認ください。
その方法は次のとおりです。
-
Share Pipeline variablesStepをWorkflowに追加します。
-
必要に応じて、Additional run conditions入力でadditional run conditionsを定義できます。ここで指定した条件がtrueの場合にのみ、Stepが実行されます。
-
後続のWorkflowsで使用したい環境変数を、Variables to share between Pipeline Workflows入力に追加します。
環境変数キーの使用環境変数は
{key}={value}構文を使用して定義できます。例えば、MY_ENV_KEY=valueまたはINSTALL_PAGE_URL=$BITRISE_PUBLIC_PAGE_URLのようになります。デフォルトの環境変数キーを使用する場合は、省略構文を使用できます。例えば、
EXISTING_ENV_KEYのようになります。このStepを使用して環境変数を共有しても、アプリで定義済みの既存の環境変数は上書きされません。
以上です。これで、後続の任意のステージで環境変数を使用できるようになります。