-4
.github/workflows/build-submit-android.yml
-4
.github/workflows/build-submit-android.yml
+1
-13
.github/workflows/bundle-deploy-eas-update.yml
+1
-13
.github/workflows/bundle-deploy-eas-update.yml
···
5
5
push:
6
6
branches:
7
7
- main
8
-
- hailey/eas-fab
9
8
workflow_dispatch:
10
9
inputs:
11
10
channel:
···
119
118
120
119
- name: 🏗️ Create Bundle
121
120
if: ${{ !steps.fingerprint.outputs.includes-changes }}
122
-
run: |
123
-
SENTRY_DIST=${{ steps.sentry.outputs.SENTRY_DIST }} SENTRY_RELEASE=${{ steps.sentry.outputs.SENTRY_RELEASE }} SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_DSN=${{ secrets.SENTRY_DSN }} EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export-ios
124
-
mv ./dist ./ios-dist
125
-
sed -i 's/"react-native-mmkv": "\^2\.12\.2"/"react-native-mmkv": "^3.3.0"/' package.json
126
-
yarn install
127
-
SENTRY_DIST=${{ steps.sentry.outputs.SENTRY_DIST }} SENTRY_RELEASE=${{ steps.sentry.outputs.SENTRY_RELEASE }} SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_DSN=${{ secrets.SENTRY_DSN }} EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export-android
128
-
mv ./dist ./android-dist
129
-
121
+
run: SENTRY_DIST=${{ steps.sentry.outputs.SENTRY_DIST }} SENTRY_RELEASE=${{ steps.sentry.outputs.SENTRY_RELEASE }} SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_DSN=${{ secrets.SENTRY_DSN }} EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export
130
122
131
123
- name: 📦 Package Bundle and 🚀 Deploy
132
124
if: ${{ !steps.fingerprint.outputs.includes-changes }}
···
282
274
with:
283
275
distribution: 'temurin'
284
276
java-version: '17'
285
-
286
-
- name: "Use upgraded MMKV for Fabric"
287
-
run: |
288
-
sed -i 's/"react-native-mmkv": "\^2\.12\.2"/"react-native-mmkv": "^3.3.0"/' package.json
289
277
290
278
- name: ⚙️ Install dependencies
291
279
run: yarn install
+1
-1
app.config.js
+1
-1
app.config.js
+1
-2
package.json
+1
-2
package.json
···
61
61
"intl:push": "crowdin push translations --verbose -b main",
62
62
"nuke": "rm -rf ./node_modules && rm -rf ./ios && rm -rf ./android",
63
63
"update-extensions": "bash scripts/updateExtensions.sh",
64
-
"export-ios": "npx expo export --platform ios --dump-sourcemap && yarn upload-native-sourcemaps",
65
-
"export-android": "npx expo export --platform android --dump-sourcemap && yarn upload-native-sourcemaps",
64
+
"export": "npx expo export --dump-sourcemap && yarn upload-native-sourcemaps",
66
65
"upload-native-sourcemaps": "npx sentry-expo-upload-sourcemaps dist",
67
66
"make-deploy-bundle": "bash scripts/bundleUpdate.sh",
68
67
"generate-webpack-stats-file": "EXPO_PUBLIC_GENERATE_STATS=1 yarn build-web",
+9
-17
scripts/bundleUpdate.js
+9
-17
scripts/bundleUpdate.js
···
3
3
const fsp = fs.promises
4
4
const path = require('path')
5
5
6
-
const IOS_DIST_DIR = './ios-dist'
7
-
const ANDROID_DIST_DIR = './android-dist'
8
-
6
+
const DIST_DIR = './dist'
9
7
const BUNDLES_DIR = '/_expo/static/js'
10
-
11
-
const IOS_BUNDLE_DIR = path.join(IOS_DIST_DIR, BUNDLES_DIR, '/ios')
12
-
const ANDROID_BUNDLE_DIR = path.join(ANDROID_DIST_DIR, BUNDLES_DIR, '/android')
13
-
14
-
const IOS_METADATA_PATH = path.join(IOS_DIST_DIR, '/metadata.json')
15
-
const ANDROID_METADATA_PATH = path.join(ANDROID_DIST_DIR, '/metadata.json')
16
-
8
+
const IOS_BUNDLE_DIR = path.join(DIST_DIR, BUNDLES_DIR, '/ios')
9
+
const ANDROID_BUNDLE_DIR = path.join(DIST_DIR, BUNDLES_DIR, '/android')
10
+
const METADATA_PATH = path.join(DIST_DIR, '/metadata.json')
17
11
const DEST_DIR = './bundleTempDir'
18
12
19
13
// Weird, don't feel like figuring out _why_ it wants this
20
-
const IOS_METADATA = require(`../${IOS_METADATA_PATH}`)
21
-
const ANDROID_METADATA = require(`../${ANDROID_METADATA_PATH}`)
22
-
23
-
const IOS_METADATA_ASSETS = IOS_METADATA.fileMetadata.ios.assets
24
-
const ANDROID_METADATA_ASSETS = ANDROID_METADATA.fileMetadata.android.assets
14
+
const METADATA = require(`../${METADATA_PATH}`)
15
+
const IOS_METADATA_ASSETS = METADATA.fileMetadata.ios.assets
16
+
const ANDROID_METADATA_ASSETS = METADATA.fileMetadata.android.assets
25
17
26
18
const getMd5 = async path => {
27
19
return new Promise(res => {
···
68
60
69
61
console.log('Getting ios asset md5s and moving them...')
70
62
for (const asset of IOS_METADATA_ASSETS) {
71
-
const currPath = path.join(IOS_DIST_DIR, asset.path)
63
+
const currPath = path.join(DIST_DIR, asset.path)
72
64
const md5 = await getMd5(currPath)
73
65
const withExtPath = `assets/${md5}.${asset.ext}`
74
66
iosAssets.push(withExtPath)
···
77
69
78
70
console.log('Getting android asset md5s and moving them...')
79
71
for (const asset of ANDROID_METADATA_ASSETS) {
80
-
const currPath = path.join(ANDROID_DIST_DIR, asset.path)
72
+
const currPath = path.join(DIST_DIR, asset.path)
81
73
const md5 = await getMd5(currPath)
82
74
const withExtPath = `assets/${md5}.${asset.ext}`
83
75
androidAssets.push(withExtPath)