自動化処理を楽にしてくれるCIライブラリfastlaneを導入する
目的
CI実装をできるだけ楽にするためのライブラリ、fastlaneを紹介します。
fastlaneとは
ビルド自動化システムです。
2017年にgoogle傘下となりました。
https://krausefx.com/blog/fastlane-is-joining-google
メンテナンスされていないライブラリを利用することは隙ではないのですが、
google傘下であり、今もなお活発に開発が行われているのである程度安心して使用しています。
なぜfastlaneなのか
- CI実装にしばしば利用される基本的機能がまとまっているため
- Ci実装をする場合、典型的な処理を書くことは避けたいです。
- ゲームを面白くするための実装ではないので
- 機能例
- AppStore/GooglePlayStoreのアプリメタデータアップロードを自動化
- 現在のブランチ名を取得
- 最後のコミットhashを取得
- 等等
- これらの処理はActionと呼ばれています。
- Ci実装をする場合、典型的な処理を書くことは避けたいです。
- Actionを簡単に定義することできる。拡張の敷居が低い
- 例えばHelloWorldを出力するだけのActionは以下のように定義できます。
- fastlaneを導入することでプロジェクトの仕組みがfastlane専用となる点が少ないため、もしも別のツールを使いたくなった場合でも、比較的簡単に移行ができることが予想されます。
- 例えばHelloWorldを出力するだけのActionは以下のように定義できます。
lane :test do
p 'Hello World Fastlane'
end
- ログの可読性が高い
- fastlane summary としてActionごとの経過時間も表示してくれるため、CI実装では重要となる処理時間も簡単にわかります。
- fastlane summary としてActionごとの経過時間も表示してくれるため、CI実装では重要となる処理時間も簡単にわかります。
- Rubyを用いて実装ができる
- fastlaneはrubyライブラリです。
- 通常、Jenkinsではgroovy,GithubActionsではShellScriptを利用しますが、これらの言語よりも表現力があります。
- Rubyのため、比較的雑に記載しても動作します。直感的に実装を行う事ができます。
- GithubActions/Jenkinsからfastlaneを呼び出すことを徹底すれば、異なるCIサービス間の処理を共有することが容易となります。
fastlaneインストール方法
詳細は公式ドキュメントを見ていただいたほうがよいです。
https://docs.fastlane.tools/
かなり簡単に記載すると、Gemfileに gem "fastlane"
を追加した後に、 bundle install
を叩くことで利用可能です。
終わりに
CIはデバッグも大変なので、できるだけ楽に実装したいところです。
そこでfastlaneを使用することをおすすめします。