Expo + EAS BuildのGithub Workflowsのソースコードを公開します

EAS Build + Expoで開発しているとき、CIの実装に詰まったので、最終的なコードをシェアします。EAS Buildの設定方法については下記記事を参考ください。

【Expo】EAS Buildのおすすめ設定方法

Github Workflowsのソースコード

下記のソースでビルド→サブミットまで自動でできます。

eas-build.yml
name: EAS Build
on:
  workflow_dispatch:
  push:
    branches:
      - main

env:
  SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}

jobs:
  build:
    name: Install and build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18.x
          cache: yarn
      - name: Setup Expo and EAS
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}
      - name: Install dependencies
        run: yarn install
      - name: Build on EAS
        #  --non-interactiveを追加する必要あり
        run: eas build --profile production --platform all --non-interactive
      - name:
          Submit To App Store
          #  --non-interactiveを追加する必要あり
        run: eas submit --profile=production --platform all --latest --non-interactive
      - name: Slack Notification on Success
        if: success()
        uses: rtCamp/action-slack-notify@master
        env:
          SLACK_MESSAGE: ${{github.event.head_commit.message}}
          SLACK_COLOR: good

注意

まずはターミナルから試しましょう。CIはターミナルからの実行がうまく行った後にやりましょう。ターミナルから実行する方法を解説します。

ターミナルから実行する時

まずはビルドです。–platform allはiOSとAndroid両方という意味です。手動でやるときは–non-interactiveをつけなくて良いです。

ターミナル
eas build --profile production --platform all

次はサブミットです。–latestは「最新のビルドをサブミットしてください」という意味です。こちらも同じく–non-interactiveをつけなくていいです。

ターミナル
eas submit --profile=production --platform all --latest

まとめ

上記が無事うまく行ったら、app.jsonのversionを上げてCIで自動化に取り組んでみてください。ソースコードはこのブログの最初に載せたものです。

補足ですが、私はSlack連携もしております。CIが終わったら教えてくれるので便利ですよ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です