LoginSignup
0
0

More than 5 years have passed since last update.

更新があった場合のみに実行されるlaneを作る

Last updated at Posted at 2018-12-14

fastlaneを利用して継続的デリバリを行ううえで,特に更新が無ければビルド・デリバリを行わないようにしたかったので,お手軽な方法で実現してみました.

まずはコミットの有無を判定する以下のようなスクリプトを用意します.

checkNeedsToDailyBuild.sh
#!/bin/bash

# 直近24時間のコミット情報
COMMITS_IN_LAST_24_HOURS=$(git log --pretty=%h --since="24 hours ago")

if [ -z "${COMMITS_IN_LAST_24_HOURS}" ] ; then
  # No commits exist
  echo -n "false"
else
  # Some commits exist
  echo -n "true"
fi

exit 0

そのうえで,laneは次のように設定しておきます.

Fastfile
lane :deploy_only_update_exists do
  res = sh "./checkNeedsToDailyBuild.sh"
  if res == "true" then
    UI.message("Some updates exist")
    # ...
    # ビルド・デプロイ処理
    # ...
  else 
    UI.message("No updates")
  end
end

CI自体のスケジューリングを使ったり,last_git_commitの情報で判定したり,…とやり方はいろいろあるとは思いますが,スクリプトに分けておけば時間以外にも条件等の設定もしやすいかなと思ってこのような形にしています.(と言いつつ今回はやってませんが…)

もしもっといいやり方があればコメントいただけると幸いです.

0
0
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
0
0