Skip to content

fix(apple): build on Firebase Apple SDK 13 and require macOS 11 for Swift packages #171

fix(apple): build on Firebase Apple SDK 13 and require macOS 11 for Swift packages

fix(apple): build on Firebase Apple SDK 13 and require macOS 11 for Swift packages #171

name: e2e-performance
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-performance
cancel-in-progress: true
# Live tier: this product has no emulator, so every job talks to the real
# `flutterfire-e2e-tests` project using the config in repository secrets.
# Fork and dependabot PRs do not get those secrets, so the reusable workflow
# guards every job.
#
# Thin caller: one job per platform this product supports, each delegating
# to the matching `reusable_e2e_<platform>.yaml`. Platforms the product does
# not support have no job here, so they render no check at all.
# Path-filtered so it only runs when this product or its dependencies change;
# the nightly workflow_call still runs it unconditionally.
on:
pull_request:
paths:
- 'packages/firebase_performance/**'
- 'packages/firebase_core/**'
- '.github/workflows/e2e_tests_performance.yaml'
- '.github/workflows/reusable_e2e_*.yaml'
- '.github/actions/setup-flutterfire/**'
- '.github/workflows/scripts/**'
push:
branches:
- main
paths:
- 'packages/firebase_performance/**'
- 'packages/firebase_core/**'
- '.github/workflows/e2e_tests_performance.yaml'
- '.github/workflows/reusable_e2e_*.yaml'
- '.github/actions/setup-flutterfire/**'
- '.github/workflows/scripts/**'
workflow_call:
inputs:
nightly_test_mode:
type: boolean
default: false
secrets:
TESTS_E2E_FIREBASE_OPTIONS_DART:
required: true
TESTS_E2E_GOOGLE_SERVICES_JSON:
required: true
permissions:
contents: read
jobs:
changes:
uses: ./.github/workflows/reusable_e2e_changes.yaml
with:
package-path: 'packages/firebase_performance/firebase_performance'
platform-interface-package: 'firebase_performance_platform_interface'
web-package: 'firebase_performance_web'
inject-config-secrets: true
android:
needs: changes
if: needs.changes.outputs.android == 'true'
uses: ./.github/workflows/reusable_e2e_android.yaml
with:
package-path: 'packages/firebase_performance/firebase_performance'
package-scope: 'firebase_performance*'
native-config-args: '--live-tier-plist=performance'
inject-config-secrets: true
use-firebase-emulators: false
nightly_test_mode: ${{ inputs.nightly_test_mode == true }}
secrets:
TESTS_E2E_FIREBASE_OPTIONS_DART: ${{ secrets.TESTS_E2E_FIREBASE_OPTIONS_DART }}
TESTS_E2E_GOOGLE_SERVICES_JSON: ${{ secrets.TESTS_E2E_GOOGLE_SERVICES_JSON }}
ios:
needs: changes
if: needs.changes.outputs.ios == 'true'
uses: ./.github/workflows/reusable_e2e_ios.yaml
with:
package-path: 'packages/firebase_performance/firebase_performance'
package-scope: 'firebase_performance*'
cache-key-suffix: 'performance'
# CocoaPods for now: Flutter's experimental SPM integration kept failing
# to resolve this example's plugin siblings ("Could not resolve package
# dependencies ... ios/firebase_core does not exist"). Dropping the Xcode
# 26.2 pin (see `reusable_e2e_ios.yaml`) is the likely fix, but one
# variable at a time - these two rejoin SPM once the default-Xcode runs
# prove clean. iOS SPM coverage is unaffected meanwhile: storage,
# database and firestore still build under it.
ios-spm: false
native-config-args: '--live-tier-plist=performance'
inject-config-secrets: true
use-firebase-emulators: false
nightly_test_mode: ${{ inputs.nightly_test_mode == true }}
secrets:
TESTS_E2E_FIREBASE_OPTIONS_DART: ${{ secrets.TESTS_E2E_FIREBASE_OPTIONS_DART }}
TESTS_E2E_GOOGLE_SERVICES_JSON: ${{ secrets.TESTS_E2E_GOOGLE_SERVICES_JSON }}
web:
needs: changes
if: needs.changes.outputs.web == 'true'
uses: ./.github/workflows/reusable_e2e_web.yaml
with:
package-path: 'packages/firebase_performance/firebase_performance'
package-scope: 'firebase_performance*'
native-config-args: '--live-tier-plist=performance'
inject-config-secrets: true
use-firebase-emulators: false
nightly_test_mode: ${{ inputs.nightly_test_mode == true }}
secrets:
TESTS_E2E_FIREBASE_OPTIONS_DART: ${{ secrets.TESTS_E2E_FIREBASE_OPTIONS_DART }}
TESTS_E2E_GOOGLE_SERVICES_JSON: ${{ secrets.TESTS_E2E_GOOGLE_SERVICES_JSON }}