GitHub Actions Integration

Use GitHub Actions runner running on a macOS machine to build using fastlane.

Repository setup

First create a Gemfile in the root of your project with the following content:

source 'https://rubygems.org'

gem 'fastlane'

Add a workflow yaml file to your repository. For example, if naming your workflow "build-ios-app", add .github/workflows/build-ios-app.yml with the following content:

name: build-ios-app
on:
  push:
    branches:
      - 'master'
jobs:
  build:
    runs-on: macOS-latest
    steps:
      - uses: actions/checkout@v2
      - run: fastlane beta
        env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

See Workflow syntax for GitHub Actions for more information on how this file works.

Setting up the lanes

Here's an example of a Fastfile with a lane that runs match, builds the app, and uploads to TestFlight:

platform :ios do
  lane :beta do
    setup_ci if ENV['CI']
    match(type: 'appstore')
    build_app
    upload_to_testflight(skip_waiting_for_build_processing: true)
  end
end

Note the usage of setup_ci: it creates a temporary keychain. Without this, the build could freeze and never finish.