Skip to content

Commit

Permalink
chore: build iOS and Android in separate GitHub actions
Browse files Browse the repository at this point in the history
  • Loading branch information
evereq committed Nov 25, 2023
1 parent c91c641 commit c309cd7
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 76 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Mobile Build, Deploy and Publish Apps
name: Mobile Build, Deploy and Publish Apps Android
on:
push:
branches:
Expand Down Expand Up @@ -44,22 +44,6 @@ jobs:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Set Apple Store Credentials
run: |
echo "APPLE_ID=${{ secrets.APPLE_ID }}" >> $GITHUB_ENV
echo "APPSTORE_ISSUER_ID=${{ secrets.APPSTORE_ISSUER_ID }}" >> $GITHUB_ENV
echo "APPSTORE_API_KEY_ID=${{ secrets.APPSTORE_API_KEY_ID }}" >> $GITHUB_ENV
- name: Replace Secrets in eas.json
run: |
sed -i 's/APPLE_ID_PLACEHOLDER/${{ secrets.APPLE_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_ISSUER_ID_PLACEHOLDER/${{ secrets.APPSTORE_ISSUER_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_API_KEY_ID_PLACEHOLDER/${{ secrets.APPSTORE_API_KEY_ID }}/' ./apps/mobile/eas.json
- name: Create Apple API Key File
run: |
echo "${{ secrets.APPSTORE_API_PRIVATE_KEY }}" > ./apps/mobile/AuthKey_R9QZ5LP8NK.p8
- name: Decode Google Credentials
run: |
DECODED_GOOGLE_CREDENTIALS=$(echo '${{ secrets.GOOGLE_CREDENTIALS }}' | base64 --decode)
Expand All @@ -79,13 +63,10 @@ jobs:
yarn build:mobile
- name: Build on EAS
run: cd apps/mobile && eas build --platform all --non-interactive
run: cd apps/mobile && eas build --platform android --non-interactive

- name: Publish update
run: cd apps/mobile && eas update --auto

- name: Upload App build to App store
run: cd apps/mobile && eas submit --platform ios --latest --non-interactive
run: cd apps/mobile && eas update --auto --platform android --non-interactive

- name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
Expand Down
78 changes: 78 additions & 0 deletions .github/workflows/mobile.apps.ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Mobile Build, Deploy and Publish Apps iOS
on:
push:
branches:
- apps
paths:
- '.github/workflows/mobile.apps.yml'
- 'apps/mobile/**'
- 'package.json'
- 'yarn.lock'

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
deploy:
runs-on: ubuntu-latest

environment: prod

permissions:
contents: read

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
- uses: actions/checkout@v3

- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'yarn'

- name: Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Set Apple Store Credentials
run: |
echo "APPLE_ID=${{ secrets.APPLE_ID }}" >> $GITHUB_ENV
echo "APPSTORE_ISSUER_ID=${{ secrets.APPSTORE_ISSUER_ID }}" >> $GITHUB_ENV
echo "APPSTORE_API_KEY_ID=${{ secrets.APPSTORE_API_KEY_ID }}" >> $GITHUB_ENV
- name: Replace Secrets in eas.json
run: |
sed -i 's/APPLE_ID_PLACEHOLDER/${{ secrets.APPLE_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_ISSUER_ID_PLACEHOLDER/${{ secrets.APPSTORE_ISSUER_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_API_KEY_ID_PLACEHOLDER/${{ secrets.APPSTORE_API_KEY_ID }}/' ./apps/mobile/eas.json
- name: Create Apple API Key File
run: |
echo "${{ secrets.APPSTORE_API_PRIVATE_KEY }}" > ./apps/mobile/AuthKey_R9QZ5LP8NK.p8
- name: Install Packages
run: |
yarn install --frozen-lockfile
- name: Build Mobile
run: |
yarn build:mobile
- name: Build on EAS
run: cd apps/mobile && eas build --platform ios --non-interactive

- name: Publish update
run: cd apps/mobile && eas update --auto --platform ios --non-interactive

- name: Upload App build to App store
run: cd apps/mobile && eas submit --platform ios --latest --non-interactive
13 changes: 0 additions & 13 deletions .github/workflows/mobile.before-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,6 @@ jobs:
contents: read

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
- uses: actions/checkout@v3

- name: Skip workflow if PR is from develop to main
Expand All @@ -47,12 +40,6 @@ jobs:
node-version: '18'
cache: 'yarn'

- name: Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Install Packages
run: |
yarn install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile.dev.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Mobile Build & Deploy DEV
name: Mobile Build DEV
on:
push:
branches:
Expand Down
41 changes: 1 addition & 40 deletions .github/workflows/mobile.prod.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Mobile Build, Deploy and Publish PROD
name: Mobile Build PROD
on:
push:
branches:
Expand All @@ -23,13 +23,6 @@ jobs:
contents: read

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
- uses: actions/checkout@v3

- name: Use Node.js 18.x
Expand All @@ -38,38 +31,6 @@ jobs:
node-version: '18'
cache: 'yarn'

- name: Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Set Apple Store Credentials
run: |
echo "APPLE_ID=${{ secrets.APPLE_ID }}" >> $GITHUB_ENV
echo "APPSTORE_ISSUER_ID=${{ secrets.APPSTORE_ISSUER_ID }}" >> $GITHUB_ENV
echo "APPSTORE_API_KEY_ID=${{ secrets.APPSTORE_API_KEY_ID }}" >> $GITHUB_ENV
- name: Replace Secrets in eas.json
run: |
sed -i 's/APPLE_ID_PLACEHOLDER/${{ secrets.APPLE_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_ISSUER_ID_PLACEHOLDER/${{ secrets.APPSTORE_ISSUER_ID }}/' ./apps/mobile/eas.json
sed -i 's/APPSTORE_API_KEY_ID_PLACEHOLDER/${{ secrets.APPSTORE_API_KEY_ID }}/' ./apps/mobile/eas.json
- name: Create Apple API Key File
run: |
echo "${{ secrets.APPSTORE_API_PRIVATE_KEY }}" > ./apps/mobile/AuthKey_R9QZ5LP8NK.p8
- name: Decode Google Credentials
run: |
DECODED_GOOGLE_CREDENTIALS=$(echo '${{ secrets.GOOGLE_CREDENTIALS }}' | base64 --decode)
echo "DECODED_GOOGLE_CREDENTIALS=$DECODED_GOOGLE_CREDENTIALS" >> $GITHUB_ENV
echo "::add-mask::$DECODED_GOOGLE_CREDENTIALS"
ESCAPED_GOOGLE_CREDENTIALS=$(echo "$DECODED_GOOGLE_CREDENTIALS" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g')
ESCAPED_GOOGLE_CREDENTIALS=$(echo $ESCAPED_GOOGLE_CREDENTIALS | sed 's/\\n/\\\\n/g')
echo "ESCAPED_GOOGLE_CREDENTIALS=$ESCAPED_GOOGLE_CREDENTIALS" >> $GITHUB_ENV
echo "::add-mask::$ESCAPED_GOOGLE_CREDENTIALS"
- name: Install Packages
run: |
yarn install --frozen-lockfile
Expand Down

0 comments on commit c309cd7

Please sign in to comment.