Bitriseで前のステップが失敗した場合にだけステップを実行する方法

Bitriseで前のステップが失敗した場合にだけステップを実行する方法についてご紹介します。

例えばこんなワークフローを作成します。

f:id:bamboohero:20210730002952p:plain

  • Scriptステップ
    • ここではexit 1を実行し、ステップを失敗させます
  • Comment on GitHub Pull Requestステップ①
    • 前のステップが成功していたときに、プルリクエストに「🎉 test passed!! 🎉」とコメントします
  • Comment on GitHub Pull Requestステップ②
    • 前のステップが失敗していたときに、プルリクエストに「❗️ test failed!! ❗️」とコメントします


Scriptステップはexit 1を実行するだけです。

f:id:bamboohero:20210730003331p:plain


Comment on GitHub Pull Requestステップでは、Githubのパーソナルアクセストークンとコメント文を設定します。

f:id:bamboohero:20210730003623p:plain


f:id:bamboohero:20210730003718p:plain




ここでComment on GitHub Pull Requestステップ②は「前のステップが失敗した場合だけ実行する」ようにしたいわけですが、これはWorkflowsタブでは設定できず、bitrise.ymlを直接修正する必要があります。

以下の「追記!」とコメントしている行を追記します。

ポイントはComment on GitHub Pull Requestステップ②のrun_if: ".IsBuildFailed"のところで、ビルドが失敗したときのみ実行するという指定になっています。

steps:
    - script@1:
        inputs:
        - content: exit 1
    - comment-on-github-pull-request@0:
        inputs:
        - body: "\U0001F389 test passed!! \U0001F389"
        - personal_access_token: "$GITHUB_PERSONAL_ACCESS_TOKEN"
        is_always_run: false  # 追記!
    - comment-on-github-pull-request@0:
        inputs:
        - body: "❗️ test failed!! ❗️"
        - personal_access_token: "$GITHUB_PERSONAL_ACCESS_TOKEN"
        run_if: ".IsBuildFailed"  # 追記!
        is_always_run: true  # 追記!


f:id:bamboohero:20210730004300p:plain


ここで紹介した設定はBitriseのドキュメントに記載がありますので、より詳しく知りたい場合はこちらをご参照ください。

Enabling or disabling a Step conditionally | Bitrise DevCenter