Github ActionでFastlaneを実行する
はじめに
Github Actionを使ってhello worldを出力する本当の初めのいっぽの記事はWeb上にたくさん溢れていますが、iOSでビルドを走らせる時などに一気に記事の量が減り、証明書周りのあーだこーだも入ってきて難しくなってしまいます。
今回はGithub Actionを使ってFastlaneのシンプルなlaneを叩くところまでをまとめてみます。
yaml
Fastfile
Fastfileの中身はhello!!!!!!という文字列を表示するだけのシンプルなhello_fastlaneというlaneを作成します
default_platform(:ios)
platform :ios do
# hello print lane
lane :hello_fastlane do
puts("hello!!!!!!")
end
end
github actionのyaml
以下のyamlの定義でfastlaneのlaneを実行することができます、以下のyamlは最小限のコードではなくよく使うであるものも追加しています。
name: Hello Fastlane🐱
on: push
jobs:
build:
runs-on: macos-latest
name: Run Fastlane Sample
steps:
- uses: actions/checkout@v3
- run: sudo xcode-select -s '/Applications/Xcode_13.2.app/Contents/Developer'
- run: xcodebuild -version
- run: bundle install
- run: bundle exec fastlane hello_fastlane
コピペすれば動くのですが、それだと応用ができないので1行ずつ一体何をしているのか解説していきます
↑のyamlを完全理解する
name: Hello Fastlane🐱
ワークフローの名前、Actions上に表示される
on: push
何をアクションとするか、pushを設定しているのでブランチがpushされたタイミングでjobが走る。
アクションの詳細に関してはこちらを参照
jobs:
ここで実行するjobを定義する、今回は1つしか定義していないが複数定義することが可能
build:
buildという名前のjob
runs-on: macos-latest
jobを実行するOSの指定、ubuntuの時はubuntu-latest
と指定する、ネット上に溢れてるHello Worldのyamlの中ではubuntuは指定がされてることが多いので注意!
iOSでの実行なのでmacosを指定しましょう
name: Run Fastlane Sample
jobの名前
- uses: actions/checkout@v3
github上のリポジトリの指定末尾のv◯はversionなので古い記事だとv2が指定されてることが多い
最新versionがいくつかはこちらを確認
- run: sudo xcode-select -s '/Applications/Xcode_13.2.app/Contents/Developer'
jobで使用するxcodeのversion指定、指定しない場合はサポートされている最新バージョンが使用される。
使用できるxcodeのversionに関してはこちらを参照
- run: xcodebuild -version
jobで使われているxcodeのversion確認、なくても問題ないですが確認用によく使うので記載してます。
- run: bundle install
プロジェクト内に定義されているGemfileのfastlaneとversionを合わせたいのでbundle installをしています。bundlerで管理していない場合は不要です。
- run: bundle exec fastlane hello_fastlane
fastlaneのlaneを実行します、bundle execをつけない場合はbundle install不要