diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 3b106a3c80f60..ffd6a7a57a5c7 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -75,6 +75,7 @@ The GitHub workflows require a large list of secrets to deploy, notify and test
1. `APPLE_CONTACT_PHONE` - Phone number used for contact between Expensify and Apple for https://appstoreconnect.apple.com/
1. `APPLE_DEMO_EMAIL` - Demo account email used for https://appstoreconnect.apple.com/
1. `APPLE_DEMO_PASSWORD` - Demo account password used for https://appstoreconnect.apple.com/
+1. `BROWSERSTACK` - Used to access Browserstack's API
## Actions
diff --git a/.github/workflows/platformDeploy.yml b/.github/workflows/platformDeploy.yml
index 33c0b51cd91e1..3a2ae4331487d 100644
--- a/.github/workflows/platformDeploy.yml
+++ b/.github/workflows/platformDeploy.yml
@@ -58,7 +58,6 @@ jobs:
MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.MYAPP_UPLOAD_STORE_PASSWORD }}
MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.MYAPP_UPLOAD_KEY_PASSWORD }}
-
- name: Run Fastlane production
if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
run: bundle exec fastlane android production
@@ -71,6 +70,12 @@ jobs:
name: android-sourcemap
path: android/app/build/generated/sourcemaps/react/release/*.map
+ - name: Upload Android version to Browser Stack
+ if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
+ run: curl -u "$BROWSERSTACK" -X POST "https://api-cloud.browserstack.com/app-live/upload" -F "file=@./android/app/build/outputs/bundle/release/app-release.aab"
+ env:
+ BROWSERSTACK: ${{ secrets.BROWSERSTACK }}
+
- name: Warn deployers if Android production deploy failed
if: ${{ failure() && fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
uses: 8398a7/action-slack@v3
@@ -174,6 +179,12 @@ jobs:
name: ios-sourcemap
path: main.jsbundle.map
+ - name: Upload iOS version to Browser Stack
+ if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
+ run: curl -u "$BROWSERSTACK" -X POST "https://api-cloud.browserstack.com/app-live/upload" -F "file=@/Users/runner/work/App/App/New\ Expensify.ipa"
+ env:
+ BROWSERSTACK: ${{ secrets.BROWSERSTACK }}
+
- name: Set iOS version in ENV
if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
run: echo "IOS_VERSION=$(echo '${{ github.event.release.tag_name }}' | tr '-' '.')" >> "$GITHUB_ENV"
diff --git a/android/app/build.gradle b/android/app/build.gradle
index d53295af34d34..43bef5c7f0b00 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -156,8 +156,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
- versionCode 1001022904
- versionName "1.2.29-4"
+ versionCode 1001022905
+ versionName "1.2.29-5"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist
index 2c00d1744f4be..7e68094f43a54 100644
--- a/ios/NewExpensify/Info.plist
+++ b/ios/NewExpensify/Info.plist
@@ -30,7 +30,7 @@
CFBundleVersion
- 1.2.29.4
+ 1.2.29.5
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist
index 80e441e385d56..08c9592ef5baf 100644
--- a/ios/NewExpensifyTests/Info.plist
+++ b/ios/NewExpensifyTests/Info.plist
@@ -19,6 +19,6 @@
CFBundleSignature
????
CFBundleVersion
- 1.2.29.4
+ 1.2.29.5
diff --git a/package-lock.json b/package-lock.json
index 3f8ebe6a315d5..3ec19ed562179 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "new.expensify",
- "version": "1.2.29-4",
+ "version": "1.2.29-5",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "new.expensify",
- "version": "1.2.29-4",
+ "version": "1.2.29-5",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index 0c1365375edc0..cce74169d0df7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "1.2.29-4",
+ "version": "1.2.29-5",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",