Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
365 changes: 69 additions & 296 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,356 +150,129 @@
if: ${{ always() }}
run: pod repo remove "${local_repo}"

abtesting_quickstart:
quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
env:
LEGACY: true
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
env:
LEGACY: true
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
- name: Remove data before upload
env:
LEGACY: true
if: ${{ failure() }}
run: scripts/remove_data.sh config
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_abtesting
path: quickstart-ios/

auth_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-authentication.plist.gpg \
quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh authentication
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_auth
path: quickstart-ios/

crashlytics_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
strategy:
matrix:
include:
- product: Performance
run_tests: true
swift: true
- product: Storage
run_tests: true
swift: true
is_legacy: true
- product: Config
run_tests: true
objc: true
- product: Messaging
run_tests: false
objc: true
swift: true
- product: InAppMessaging
run_tests: true
objc: true
swift: true
- product: Firestore
run_tests: false
objc: true
- product: Database
run_tests: false
objc: true
swift: true
- product: Authentication
run_tests: false
objc: true
- product: Crashlytics
run_tests: true
swift: true
is_legacy: true
setup_command: |
mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
# Set the deployed pod location of run and upload-symbols with the development pod version.
cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
- product: ABTesting
run_tests: true
objc: true
is_legacy: true
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
LEGACY: ${{ matrix.is_legacy && true || '' }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
env:
LEGACY: true
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh ${{ matrix.product }} nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
env:
LEGACY: true
run: |
mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
# Set the deployed pod location of run and upload-symbols with the development pod version.
cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
- name: Remove data before upload
env:
LEGACY: true
if: ${{ failure() }}
run: scripts/remove_data.sh crashlytics
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \
quickstart-ios/${{ matrix.product }}/GoogleService-Info.plist "$plist_secret"
- name: Run setup command, if needed.
if: matrix.setup_command != ''
run: ${{ matrix.setup_command }}
- name: Build Obj-C quickstart
if: matrix.objc == true
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
name: quickstart_artifacts_crashlytics
path: quickstart-ios/

database_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
- name: Test objc quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
- name: Test swift quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh database
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }}
- name: Build Swift quickstart
if: matrix.swift == true
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
name: quickstart_artifacts_database
path: quickstart-ios/

firestore_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
run: ([ -z $plist_secret ] ||
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }} swift
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh firestore
run: scripts/remove_data.sh ${{ matrix.product }}
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_firestore
name: quickstart_artifacts_${{ matrix.product }}
path: quickstart-ios/

# TODO: The functions quickstart uses Material which isn't supported by Xcode 15
# functions_quickstart:
# # Don't run on private repo unless it is a PR.
# if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
# needs: buildup_SpecsReleasing_repo
# env:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
# botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
# LEGACY: true
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v4
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
# - name: Setup testing repo and quickstart
# run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
# - name: install secret googleservice-info.plist
# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
# quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
# - name: Setup custom URL scheme
# run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
# - name: Test objc quickstart
# run: ([ -z $plist_secret ] ||
# scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
# - name: Test swift quickstart
# run: ([ -z $plist_secret ] ||
# scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
# - name: Remove data before upload
# if: ${{ failure() }}
# run: scripts/remove_data.sh functions
# - uses: actions/upload-artifact@v4
# if: ${{ failure() }}
# with:
# name: quickstart_artifacts_functions
# path: quickstart-ios/

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

inappmessaging_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
- name: install secret googleservice-info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
- name: Test objc quickstart
run: ([ -z $plist_secret ] ||
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
- name: Test swift quickstart
run: ([ -z $plist_secret ] ||
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh inappmessaging
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_inappmessaging
path: quickstart-ios/

messaging_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
- name: Test objc quickstart
run: ([ -z $plist_secret ] ||
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
- name: Test swift quickstart
run: ([ -z $plist_secret ] ||
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh messaging
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_messaging
path: quickstart-ios/

remoteconfig_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
- name: Test Swift Quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh config
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_config
path: quickstart-ios/

storage_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
LEGACY: true
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh storage
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_storage
path: quickstart-ios/

performance_quickstart:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
needs: buildup_SpecsReleasing_repo
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Set Xcode version
run: sudo xcode-select -s /Applications/Xcode_16.4.app
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup testing repo and quickstart
run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
- name: Test swift quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh performance
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_performance
path: quickstart-ios/
Loading