ステップバンドル
ステップ バンドルを使用すると、YAML ファイルからステップを手動でコピーして貼り付ける必要がなく、任意のワークフロー内のステップとステップのシーケンスを便利な方法で再利用できます。
ステップ バンドルを使うと、複数のステップを 1 つのユニットにグループ化できます。Step Bundle を使うと、YAML 設定ファイルから手動でコピーして貼り付けることなく、ステップやステップのシーケンスを再利用できます
ステップバンドルは、というルートレベルのエンティティで設定されます。 step_bundles
。Step バンドルをどのバンドルにも挿入できます。 ワークフロー。ユーティリティワークフローとは異なり、 ワークフローチェーニング、ステップバンドルはワークフローのどこにでも配置できます。
ビルドを実行すると、バンドル内の各ステップは、バンドルが挿入された位置で実行されます。
ステップバンドルの作成
ワークフローエディター
コンフィギュレーション YAML
-
ワークフローエディターを開きます。
-
左側で [] を選択します。 ステップバンドル。
-
クリック
バンドルがない場合。Step Bundle がすでに 1 つ以上ある場合は、中央のドロップダウンメニューを開いてをクリックします。 ステップバンドルの作成。
-
ダイアログで、バンドルの名前を入力します。
-
既存の Step バンドルがある場合は、ドロップダウンメニューからいずれかを選択できます。新しい Step バンドルは既存のバンドルのコピーになります。
-
完了したら、をクリックします
。 -
をクリックして最初の Step を追加
。ステップバンドルを別のステップバンドルに追加することをネストと呼びます。 ネストステップバンドル.
-
すでに追加されているステップまたはバンドルの上または下にカーソルを置き、プラス記号をクリックして、ステップまたはバンドルを追加します。
-
の下で新しいバンドル入力を設定します [構成] タブをクリックしてクリック + 入力を追加。 新しいバンドル入力 ダイアログでは、バンドル内の複数のステップを管理するための入力変数を定義できます。Steps 内のキーを参照して、各ワークフローにカスタム値を割り当ててください。
-
追加
step_bundles
エンティティを YAML ファイルの最上位レベルに追加し、名前を付けます。バンドルはこの名前で参照されます。format_version: 11 step_bundles: install_deps:
-
を追加
steps
バンドルの下にプロパティを指定し、実行したいステップを追加します。 参考ステップ これはワークフローの場合と同じです。この例では、 キャッシュを復元する ステップと
npm
ステップ。format_version: 11 step_bundles: install_deps: steps: - restore-cache@1: {} - npm@1: {}
-
既存のワークフローにステップ バンドルを追加します。構文は次のようになります。
bundle::<bundle-name>
。workflows: ci: steps: - [email protected]: {} - bundle::install_deps: {} - deploy-to-bitrise-io@2: {}
ユーティリティワークフローに基づくステップバンドルの作成
を基に Step バンドルを作成できます ユーティリティワークフロー。バンドルには、ユーティリティワークフローに含まれていたすべてのステップが含まれます。ただし、ユーティリティワークフローとは異なり、ステップバンドルは別のワークフロー内のどこにでも配置できます。
-
ワークフローエディターを開きます。
-
左側で [] を選択します。 ステップバンドル。
-
から に基づいて ドロップダウンメニューで、ユーティリティワークフローを選択します。
-
クリック ステップバンドルの作成。
ネストステップバンドル
ステップバンドルではネスティングが可能です。ステップバンドルを別のステップバンドルに追加できます。これにより、部品を簡単に交換できる大規模で複雑な構成を作成できます。別の Step バンドルには、必要な数だけ Step バンドルを追加できます
ワークフローエディター
コンフィギュレーション YAML
-
ワークフローエディターを開きます。
-
左側で [] を選択します。 ステップバンドル。
-
中央のドロップダウンメニューからステップバンドルを選択します。
-
空のバンドルの場合は、をクリックします
。バンドルにすでにステップが含まれている場合は、ステップの間にカーソルを置いてプラス記号をクリックします。
-
ダイアログで、 ステップバンドル タブ。
-
バンドルを選択して元のバンドルに追加します。
-
ドラッグアンドドロップを使用してバンドル内で移動します。
-
完了したら、をクリックします
-
設定 YAML ファイルで、その中にネストしたいステップバンドルを定義します
step_bundles
プロパティ。step_bundles: initialize: steps: - activate-ssh-key: {} - git-clone: {}
-
を使用してこのバンドルを別のバンドルの中にネストします
bundles
プロパティ。step_bundles: initialize: steps: - activate-ssh-key: {} - git-clone: {} deploy_bundle: steps: - bundle::initialize: {} - deploy-to-bitrise-io: {}
ステップバンドル入力
どのステップバンドルでも、入力のリストは以下で定義できます inputs
キー。Step バンドルに設定できる入力は次のとおりです。バンドル定義以外で追加の入力を定義することはできません。
ただし、Step バンドルの定義済み入力の値を、バンドル定義の外に設定することはできます。 ステップバンドル入力の設定.
ステップバンドル入力はステップ入力と同じモデルを共有します。Step 入力とその形式について詳しくは、以下をご覧ください ステップ入力リファレンス.
-
設定 YAML ファイルに、以下を追加します。
inputs
Step バンドルのプロパティ。format_version: 11 step_bundles: install_deps: inputs:
-
アンダー
inputs
、Step 入力に使用するキーと値のペアを追加します。format_version: 11 step_bundles: install_deps: inputs: - cache_key: "npm-cache-{{ checksum "package-lock.json" }}" - npm_command: install
-
適切なステップ入力にキーを追加します。
この例では、デフォルトの入力を次のように設定しました。
key
の入力restore-cache
ステップとcommand
の入力npm
ステップ。format_version: 11 step_bundles: install_deps: inputs: - cache_key: "npm-cache-{{ checksum "package-lock.json" }}" - npm_command: install steps: - restore-cache@1: inputs: - key: $cache_key - npm@1: {} inputs: - command: $npm_command
ステップバンドル入力の設定
ステップバンドルの入力はステップバンドル定義で定義しますが、定義の外部に新しい入力を追加することはできません。
ワークフローのステップリストのステップバンドルで定義されたステップバンドル入力に新しい値を設定できます。
-
設定YAMLファイルで、ワークフローとステップバンドルを見つけます。
steps
リスト。 -
を追加
inputs
Step バンドルが参照されるプロパティと、それにキーと値のペアを追加します。この例では、の新しい値を設定します
cache_key
バンドルで定義されているデフォルト値の代わりに入力してください。ワークフローが実行されると、restore-cache
ステップではnpm-cache
の代わりに値npm-cache-{{ checksum "package-lock.json" }}
。format_version: 11 step_bundles: install_deps: inputs: - cache_key: "npm-cache-{{ checksum "package-lock.json" }}" - npm_command: install steps: - restore-cache@1: inputs: - key: $cache_key - npm@1: inputs: - command: $npm_command workflows: ci: steps: - git-clone@8: {} - bundle::install_deps: inputs: - cache_key: "npm-cache" - deploy-to-bitrise-io@2: {}
ステップバンドル出力
ステップは出力変数を生成できます。ステップがステップ バンドルに含まれている場合、その出力変数は、ステップ バンドル以降のワークフロー内のすべてのステップで使用できます。
たとえば、ワークフローで使用されるステップバンドルが xcode-archive
ステップ、バンドルの後の次のステップは、BITRISE_IPA_PATH
ステップによって公開される出力変数。
run_if によるステップバンドルの条件付き実行
を使う run_if
条件付きステップバンドルでは、環境変数やその他の基準に基づいてバンドル全体を条件付きで実行できます。申請する場合 run_if
ワークフロー内の Step Bundle 呼び出しに対して直接、バンドルの実行前に条件が評価されます。評価が false の場合、バンドル全体とそのすべてのステップがスキップされます
ザル run_if
構文は個々のステップの場合と同じように機能します。 run_if
テンプレート式とカスタムテンプレート関数たとえば、
getenv
、 enveq
、および envcontain
ステップがサポートされています。
この例では、 deploy-to-staging
バンドルは、PR がドラフト PR でない場合にのみ実行されます。同様に、 notify-slack
bundle はビルドが成功した場合にのみ実行されます。
workflows: deploy: steps: - bundle::build-and-test: {} - bundle::deploy-to-staging: run_if: '{{ not (envcontain "BITRISE_GIT_MESSAGE" "[draft]") }}' - bundle::notify-slack: run_if: '{{ not .IsBuildFailed }}'
-
プロジェクトのワークフローエディターを開きます。
-
クリック ステップバンドル 左側にあります。
-
選択してください [構成] タブをクリックし、下に値を入力します。 その他の実行条件。
指定できます run_if
定義の中でも Step バンドルのインスタンスでも:
-
いつ
run_if
が定義に含まれている場合は、すべてのインスタンスのデフォルトの run_if として機能します。 -
いつ
run_if
がインスタンス内にある場合、定義が上書きされ、その 1 つのインスタンスはrun_if
。Step Bundle が通常条件付きで実行される場合は、定義したほうがよい
run_if
すべてのインスタンスが適切なデフォルト値になるように定義するrun_if
。リポジトリのクローンやセットアップバンドルのように、通常はCI環境でしか意味がありません(そのため、git-cloneステップ自体にはrun_if: .IsCI
)。
方法についてさらに詳しく ステップの有効化/無効化、条件の設定 と run_if
エクスプレッション。
マイグレーション
現在同じものを持っている場合 run_if
バンドル内の複数のステップの条件。以下を使用してワークフローを合理化する方法を示します run_if
ステップバンドルで。
変更前:
workflows: test: steps: - bundle::my-test-suite: {} step_bundles: my-test-suite: steps: - script: run_if: '{{ enveq "RUN_TESTS" "true" }}' # ... - gradle-runner: run_if: '{{ enveq "RUN_TESTS" "true" }}' # ... - deploy-to-bitrise-io: run_if: '{{ enveq "RUN_TESTS" "true" }}' # ...
後:
workflows: test: steps: - bundle::my-test-suite: run_if: '{{ enveq "RUN_TESTS" "true" }}' step_bundles: my-test-suite: steps: - script: # ... - gradle-runner: # ... - deploy-to-bitrise-io: # ...