DeployGate Review Apps とは

そんなものは公式には存在しない。 Heroku Review Apps の仕組みのアプリ版のこと。 (made by wada811)

Heroku Review Apps とは

Pull Request ごとに Web の動作環境を Heroku 上に構築してくれる便利な機能。詳しくは以下。

DeployGate Review Apps がなぜ必要か、何が嬉しいのか

ほぼ Heroku Review Apps と同じ理由になってしまうが、以下のような理由がある。

  • Pull Request のレビュー時に手軽に動作確認ができる
    • デザイン修正や挙動変更などのコードではわかりにくい
    • 気になったら pull してビルドしてインストールして…というのが面倒臭い
  • DeployGate は良いぞ

Bitrise の install page じゃダメなの?

DeployGate は良い(ry

DeployGate Review Apps 構築

全体の構成

  1. Pull Request 用の Workflow を設定 (ここでは Test workflow とする)
    1. Bitrise で Pull Request をトリガーに Test Workflow を設定
    2. Test workflow で DeployGate Upload のステップを追加する
  2. BASE ブランチ(master, develop など)用の Workflow を設定 (ここでは Release workflow とする)
    1. Bitrise で Push をトリガーに Release Workflow を設定
    2. DeployGate の配布ページを削除する Script ステップを追加する

動作ステップ

  1. Pull Request の作成 または Pull Request への Push
    1. Test workflow が開始
    2. HEAD ブランチ名で DeployGate の配布ページが作成される
  2. Pull Request のマージ
    1. Release workflow が開始
    2. DeployGate の配布ページが削除される

DeployGate の配布ページを削除する Script ステップ

    - script:
        title: Delete DeployGate Distribution Page
        inputs:
        - content: |-
            #!/usr/bin/env bash
            set -eux

            # echo "$GIT_CLONE_COMMIT_MESSAGE_SUBJECT": Merge pull request #3 from wada811/feature/app-icon
            # awk '{ print $6 }': wada811/feature/app-icon
            # cut -d '/' -f 2-`: feature/app-icon
            DISTRIBUTION_NAME=`echo "$GIT_CLONE_COMMIT_MESSAGE_SUBJECT" | awk '{ print $6 }' | cut -d '/' -f 2-`

            curl \
              -X DELETE \
              -F "token=$DEPLOY_GATE_API_KEY" \
              -F "distribution_name=$DISTRIBUTION_NAME" \
              "https://deploygate.com/api/users/${DEPLOY_GATE_USER_NAME}/platforms/android/apps/${APP_PACKAGE_NAME}/distributions"

References

DeployGate Review Apps を構築した感想

最高。便利。なんでこんなに便利なものが既にないのか不思議。他の方法で解決していて話題にもならないのだろうか。