Help us understand the problem. What is going on with this article?

Bitrise のワークフローを分割して再利用性を高めよう

More than 1 year has passed since last update.

お久しぶりです。Bitrise おじさんと化した iOS エンジニアです。

CI/CD ツールとして、Bitrise を導入していますが、GUI でワークフローの設定ができてとても便利ですが、時々複数のワークフロー内に同じ仕事の連続があって、例えばビルド前の CocoaPods などの依存解決とかの場合、ワークフローごとにその連続した仕事を追加しないといけなかったり、開発に連れてちょっと途中のステップを変更する必要が出てきてしまった場合全てのワークフローにそれを適用しなければならなかったりするのって、かなり大変ですよね。

そんな時に便利になるのは、ワークフロー内に別のワークフローを使うという方法です。使い方はとても簡単で、ワークフローの設定画面に別のワークフローを追加するだけです:
スクリーンショット 2018-11-30 17.24.42.png

例えば現在自分が入ってるプロジェクトではこのようなワークフローが設定してあります、これは Dev 環境のアプリデプロイをするワークフローです:
スクリーンショット 2018-11-30 17.29.35(2).png

ご覧の通り、develop-deploy という名前のワークフローですが、中には _preparation_pull-cache_install-dependencies_push-cache、自分自身、_adhoc_deploy という順番で実行されていきます。_ で始まるのがそれぞれ別のワークフロー1です。

このようにワークフローを小分けしていくと最大のメリットは、まさに一つのワークフローに修正を入れれば、それを利用する全てのワークフローがそれに合わせて直るというわけです。例えばこちらは PR もらった時のテスト用のワークフローです:
スクリーンショット 2018-11-30 17.36.56(2).png

ご覧の通り、_preparation_pull-cache_install-dependencies_push-cache は全て上のデプロイワークフローと同じ流用です。こうすることによって、例えば今度 DIKitGen 以外のビルド用依存を入れた場合、_install-dependencies 内に一度だけそれを入れておけば、それを使う develop-deployfast-test 両方とも更新されて、二度手間が省けるのでとても便利です。

というわけでみなさんもぜひワークフロー分割で楽しい Bitrise ライフを💪


  1. 別に _ から始まらないと別のワークフローには使えないというわけではなく、「本ワークフロー」「子ワークフロー」を目で見て区別できるために、子ワークフローの名前の最初に _ を入れてるだけです。 

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away