2024-02-21 22:54:31 +01:00
---
name : Build and Submit iOS
on :
workflow_dispatch :
inputs :
profile :
type : choice
description : Build profile to use
options :
2024-04-04 00:14:44 +02:00
- testflight
2024-02-21 22:54:31 +01:00
- production
jobs :
build :
name : Build and Submit iOS
runs-on : macos-14
steps :
- name : Check for EXPO_TOKEN
run : >
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name : ⬇️ Checkout
uses : actions/checkout@v4
2024-05-07 05:13:12 +02:00
with :
fetch-depth : 5
2024-02-21 22:54:31 +01:00
- name : 🔧 Setup Node
2024-02-27 02:35:06 +01:00
uses : actions/setup-node@v4
2024-02-21 22:54:31 +01:00
with :
2024-02-27 02:35:06 +01:00
node-version-file : .nvmrc
2024-02-21 22:54:31 +01:00
cache : yarn
- name : 🔨 Setup EAS
uses : expo/expo-github-action@v8
with :
expo-version : latest
eas-version : latest
token : ${{ secrets.EXPO_TOKEN }}
- name : ⛏️ Setup EAS local builds
run : yarn global add eas-cli-local-build-plugin
- name : ⚙️ Install dependencies
run : yarn install
- name : ☕️ Setup Cocoapods
uses : maxim-lobanov/setup-cocoapods@v1
with :
version : 1.14 .3
- name : 💾 Cache Pods
uses : actions/cache@v3
id : pods-cache
with :
path : ./ios/Pods
# We'll use the yarn.lock for our hash since we don't yet have a Podfile.lock. Pod versions will not
# change unless the yarn version changes as well.
key : ${{ runner.os }}-pods-${{ hashFiles('yarn.lock') }}
2024-02-27 22:31:44 +01:00
- name : 🔤 Compile translations
run : yarn intl:build
2024-02-21 22:54:31 +01:00
- name : ✏️ Write environment variables
run : |
echo "${{ secrets.ENV_TOKEN }}" > .env
2024-05-05 01:33:10 +02:00
echo "EXPO_PUBLIC_BUNDLE_IDENTIFIER=$(git rev-parse --short HEAD)" >> .env
echo "EXPO_PUBLIC_BUNDLE_DATE=$(date -u +"%y%m%d%H")" >> .env
2024-02-21 22:54:31 +01:00
echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json
- name : 🏗️ EAS Build
2024-04-04 00:14:44 +02:00
run : yarn use-build-number-with-bump eas build -p ios --profile ${{ inputs.profile || 'testflight' }} --local --output build.ipa --non-interactive
2024-02-21 22:54:31 +01:00
- name : 🚀 Deploy
run : eas submit -p ios --non-interactive --path build.ipa