お久しぶりです。Bitrise おじさんと化した iOS エンジニアです。
CI/CD ツールとして、Bitrise を導入していますが、GUI でワークフローの設定ができてとても便利ですが、時々複数のワークフロー内に同じ仕事の連続があって、例えばビルド前の CocoaPods などの依存解決とかの場合、ワークフローごとにその連続した仕事を追加しないといけなかったり、開発に連れてちょっと途中のステップを変更する必要が出てきてしまった場合全てのワークフローにそれを適用しなければならなかったりするのって、かなり大変ですよね。
そんな時に便利になるのは、ワークフロー内に別のワークフローを使うという方法です。使い方はとても簡単で、ワークフローの設定画面に別のワークフローを追加するだけです:
例えば現在自分が入ってるプロジェクトではこのようなワークフローが設定してあります、これは Dev 環境のアプリデプロイをするワークフローです:
ご覧の通り、develop-deploy
という名前のワークフローですが、中には _preparation
、_pull-cache
、_install-dependencies
、_push-cache
、自分自身、_adhoc_deploy
という順番で実行されていきます。_
で始まるのがそれぞれ別のワークフロー1です。
このようにワークフローを小分けしていくと最大のメリットは、まさに一つのワークフローに修正を入れれば、それを利用する全てのワークフローがそれに合わせて直るというわけです。例えばこちらは PR もらった時のテスト用のワークフローです:
ご覧の通り、_preparation
、_pull-cache
、_install-dependencies
と _push-cache
は全て上のデプロイワークフローと同じ流用です。こうすることによって、例えば今度 DIKitGen
以外のビルド用依存を入れた場合、_install-dependencies
内に一度だけそれを入れておけば、それを使う develop-deploy
と fast-test
両方とも更新されて、二度手間が省けるのでとても便利です。
というわけでみなさんもぜひワークフロー分割で楽しい Bitrise ライフを💪
-
別に
_
から始まらないと別のワークフローには使えないというわけではなく、「本ワークフロー」「子ワークフロー」を目で見て区別できるために、子ワークフローの名前の最初に_
を入れてるだけです。 ↩