EAS Build + Expoで開発しているとき、CIの実装に詰まったので、最終的なコードをシェアします。EAS Buildの設定方法については下記記事を参考ください。
下記のソースでビルド→サブミットまで自動でできます。
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が終わったら教えてくれるので便利ですよ。
LangJournalは、日記を書くことで英語やフランス語などの外国語を学べるアプリです。英語学習に興味がある方や、私が開発したこのアプリに関心を持っている方は、ぜひインストールしてお試しください。
LangJournalのサイトはこちら