Skip to content

Commit

Permalink
Merge pull request #55037 from Expensify/andrew-firebase-distribution
Browse files Browse the repository at this point in the history
[No QA]Add Firebase distribution for iOS and Android staging builds

(cherry picked from commit de03389)

(CP triggered by AndrewGable)
  • Loading branch information
AndrewGable authored and OSBotify committed Jan 9, 2025
1 parent d54f881 commit 068659e
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 5 deletions.
22 changes: 20 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ jobs:
- name: Setup Node
id: setup-node
uses: ./.github/actions/composite/setupNode
with:
with:
IS_HYBRID_BUILD: 'true'

- name: Run grunt build
Expand Down Expand Up @@ -166,6 +166,7 @@ jobs:
env:
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
run: |
op document get --output ./firebase.json firebase.json
op document get --output ./upload-key.keystore upload-key.keystore
op document get --output ./android-fastlane-json-key.json android-fastlane-json-key.json
# Copy the keystore to the Android directory for Fullstory
Expand Down Expand Up @@ -230,6 +231,10 @@ jobs:
env:
BROWSERSTACK: ${{ secrets.BROWSERSTACK }}

- name: Upload Android build to Firebase distribution
if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
run: bundle exec fastlane android upload_firebase_distribution

- name: Upload Android build artifact
if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -350,6 +355,15 @@ jobs:
max_attempts: 5
command: scripts/pod-install.sh

- name: Install 1Password CLI
uses: 1password/install-cli-action@v1

- name: Load files from 1Password
env:
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
run: |
op document get --output ./firebase.json firebase.json
- name: Decrypt AppStore profile
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AppStore.mobileprovision NewApp_AppStore.mobileprovision.gpg
env:
Expand Down Expand Up @@ -393,6 +407,10 @@ jobs:
env:
BROWSERSTACK: ${{ secrets.BROWSERSTACK }}

- name: Upload iOS build to Firebase distribution
if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
run: bundle exec fastlane ios upload_firebase_distribution

- name: Upload iOS sourcemaps artifact
if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -451,7 +469,7 @@ jobs:
- name: Setup Node
id: setup-node
uses: ./.github/actions/composite/setupNode
with:
with:
IS_HYBRID_BUILD: 'true'

- name: Setup Ruby
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ DerivedData
*.p12
*.mobileprovision
ios-fastlane-json-key.json
firebase.json
**/.xcode.env.local

# Android/IntelliJ
Expand Down
14 changes: 11 additions & 3 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ GEM
apktools (~> 0.7)
aws-sdk-s3 (~> 1)
mime-types (~> 3.3)
fastlane-plugin-firebase_app_distribution (0.10.0)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
google-apis-firebaseappdistribution_v1alpha (~> 0.2.0)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
ffi (1.17.0)
Expand All @@ -184,6 +187,10 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-firebaseappdistribution_v1 (0.3.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-firebaseappdistribution_v1alpha (0.2.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
Expand Down Expand Up @@ -229,7 +236,7 @@ GEM
molinillo (0.8.0)
multi_json (1.15.0)
multipart-post (2.4.1)
nanaimo (0.4.0)
nanaimo (0.3.0)
nap (1.1.0)
naturally (2.2.1)
netrc (0.11.0)
Expand Down Expand Up @@ -274,12 +281,12 @@ GEM
uber (0.1.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
xcodeproj (1.27.0)
xcodeproj (1.25.1)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
nanaimo (~> 0.3.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
Expand All @@ -298,6 +305,7 @@ DEPENDENCIES
cocoapods (= 1.15.2)
fastlane (~> 2, >= 2.222.0)
fastlane-plugin-aws_s3
fastlane-plugin-firebase_app_distribution
xcodeproj (< 1.26.0)
xcpretty (~> 0)

Expand Down
19 changes: 19 additions & 0 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,16 @@ platform :android do
)
end

desc "Upload app to Firebase distribution"
lane :upload_firebase_distribution do
firebase_app_distribution(
app: "1:1008697809946:android:2e48f9ffe8d0b6a2",
service_credentials_file: "./firebase.json",
android_artifact_path: ENV[KEY_GRADLE_AAB_PATH],
android_artifact_type: "AAB"
)
end

desc "Upload HybridApp to Google Play for internal testing"
lane :upload_google_play_internal_hybrid do
# Google is very unreliable, so we retry a few times
Expand Down Expand Up @@ -507,6 +517,15 @@ platform :ios do
sh("echo '{\"ipa_path\": \"#{lane_context[SharedValues::S3_IPA_OUTPUT_PATH]}\",\"html_path\": \"#{lane_context[SharedValues::S3_HTML_OUTPUT_PATH]}\"}' > ../ios_paths.json")
end

desc "Upload app to Firebase distribution"
lane :upload_firebase_distribution do
firebase_app_distribution(
app: "1:1008697809946:ios:3ffad71f664f2886",
service_credentials_file: "./firebase.json",
ipa_path: ENV[KEY_IPA_PATH],
)
end

desc "Upload app to TestFlight"
lane :upload_testflight do
upload_to_testflight(
Expand Down
1 change: 1 addition & 0 deletions fastlane/Pluginfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
# Ensure this file is checked in to source control!

gem 'fastlane-plugin-aws_s3'
gem 'fastlane-plugin-firebase_app_distribution'

0 comments on commit 068659e

Please sign in to comment.