LoginSignup
6
5

More than 5 years have passed since last update.

Deploygateで自動Deployする方法

Last updated at Posted at 2018-07-24

Deploygateで自動Deplopyする

CIツールを使ってDeployが理想だけど都合上そうもいかないしローカル環境でなんとかしたいという方向けです。

もっと良いやり方があると思いますのでコメントいただければ幸いです。

前提条件

  • iOSアプリの配布(Androidも参考程度にはなるかも...)
  • gitを利用している
  • Fastlaneを利用している
  • Deploygateを利用している

やりかた

PCにログインしたときに自動でデプロイするシェルスクリプト実行できるようにするだけです。

FastfileにDeploygateに配布する用のlaneを記述

こちらはFastlaneを利用している前提ですので導入の仕方など細かな説明は省きます。

詳しく知りたい方はfastlane公式ドキュメントを参照ください

Fastfile
  desc "Deploygateにアップロード"
  lane :dg do
    gym(
      workspace: 'xxxxxxxx.xcworkspace',
      scheme: 'スキーム名',
      configuration: 'コンフィグレーション名',
      export_method: "ad-hoc",
      clean: true
    )
    deploygate(
      api_token: 'API Keyを記述',
      user: 'ユーザ名',
      message: last_git_commit[:message]
    )
  end

Automatorアプリケーションでの設定

1.Automator を起動します

スクリーンショット 2018-07-25 8.16.34.png

  1. 書類の種類はアプリケーションを選択します。
  2. 左側のタブに検索窓があるのでシェルスクリプトと検索します
  3. シェルスクリプトを実行が出てくると思うので右側のウインドにドラッグ&ドロップします。

以下のシェルスクリプトを記述して保存します

#!/bin/bash

# リモートのmasterブランチとローカルのmasterブランチの差分があったらpullしてきてdeployします

cd [プロジェクトまでのパス]
diff=$(git diff origin/master master)

if [ -n "$diff" ]; then
  git pull origin master master
  bundle exec fastlane dg
fi

保存することで上記のシェルスクリプトをアプリケーション化できます。

アプリケーション化をすることはできたのでダブルクリックするとDeploy自体は用意にできるようにはなりました。

ログイン時に自動でDeployする設定

  1. macの システム環境設定 を開きます。
  2. ユーザとグループ を選択します
  3. ログイン項目 を選択します
  4. + ボタンから先ほどAutomatorで作成し保存したアプリケーションを追加します

以上で設定は完了です。

あとがき

シェルスクリプトでbundlerを利用しているのですが、
rbenvでrubyバージョンを管理している方はbundlerのパスが通っていないよと怒られるかもしれません。
その際はシェルスクリプトの方でパスを通してあげる必要があると思います。
各自bash_profileなどで設定しているパスを通してあげてください。

シェルの実行トリガーをログイン時ではなくリモートブランチと差分が生まれた瞬間pullしてdeployしてほしかったのですが、うまい方法が見つけられませんでした。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5