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不要