Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
37 changes: 37 additions & 0 deletions .github/actions/setup_simulator/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# TODO: Temporary local copy of firebase/firebase-ios-sdk's setup_simulator
# composite action. Consolidate to reference
# `firebase/firebase-ios-sdk/.github/actions/setup_simulator` once upstream
# resolves its script path via `$GITHUB_ACTION_PATH` instead of
# `github.workspace` and supports `macOS|catalyst` as a no-op.

name: 'Setup Simulator'
description: 'Creates a standardized simulator matching the active Xcode runtime.'
inputs:
platform:
description: 'The platform to create a simulator for (iOS, tvOS, watchOS, visionOS, all). Default is all.'
required: false
default: 'all'

runs:
using: "composite"
steps:
- name: Run Simulator Setup Script
shell: bash
env:
PLATFORM: ${{ inputs.platform }}
run: |
"$GITHUB_WORKSPACE/scripts/setup_simulator.sh" "$PLATFORM"
Comment thread
ncooke3 marked this conversation as resolved.
Resolved
19 changes: 11 additions & 8 deletions .github/workflows/abtesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,18 @@ env:
jobs:
spm:
name: spm (Xcode ${{ matrix.xcode }} - ${{ matrix.os }})
runs-on: macOS-15
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2"]
xcode: ["26.2", "26.4"]
os: [iOS, tvOS, macOS, watchOS, catalyst]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
- os: iOS
device: iPhone 16
# Test runs locally but fails in CI with:
# (Underlying Error: lstat of
# /Users/runner/Library/Developer/CoreSimulator/Devices/
Expand All @@ -52,29 +56,28 @@ jobs:
# /Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement failed: No such file or directory
test: false
- os: tvOS
device: Apple TV 4K (3rd generation) (at 1080p)
test: true
- os: macOS
device: localhost
test: true
- os: watchOS
device: Apple Watch Series 5 - 44m
test: false
- os: catalyst
device: localhost
test: false # disabled due to a permissions error on launch (OSStatus -54).
env:
SETUP: abtesting
SPM: true
DIR: abtesting
OS: ${{ matrix.os }}
DEVICE: ${{ matrix.device }}
TEST: ${{ matrix.test }}
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: ${{ matrix.os }}
- name: Setup
run: |
gem install xcpretty
Expand Down
20 changes: 12 additions & 8 deletions .github/workflows/analytics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,41 +32,45 @@ env:
jobs:
spm:
name: spm (Xcode ${{ matrix.xcode }} - ${{ matrix.os }})
runs-on: macOS-15
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
# TODO: Re-enable when ODM2 catalyst support is investigated
# os: [iOS, catalyst, tvOS, macOS]
# os: [iOS, catalyst, tvOS, macOS]
os: [iOS, tvOS, macOS]
xcode: ["26.2"]
xcode: ["26.2", "26.4"]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
- os: iOS
device: iPhone 16
test: true
# TODO: Re-enable when ODM2 catalyst support is investigated
# - os: catalyst
# device: localhost
# test: false # disabled due to a permissions error on launch (OSStatus -54).
- os: tvOS
device: Apple TV 4K (3rd generation) (at 1080p)
scheme: AnalyticsExampleTV
test: true
- os: macOS
device: localhost
scheme: AnalyticsExampleMac
test: true

env:
SPM: true
OS: ${{ matrix.os }}
DEVICE: ${{ matrix.device }}
SCHEME: ${{ matrix.scheme || 'AnalyticsExample' }}
DIR: analytics
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: ${{ matrix.os }}
- name: Setup
run: |
cd analytics
Expand Down
19 changes: 16 additions & 3 deletions .github/workflows/authentication.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,33 @@ env:

jobs:
spm:
runs-on: macOS-15
name: spm (Xcode ${{ matrix.xcode }} - iOS)
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2", "26.4"]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
env:
OS: iOS
SETUP: authentication
SPM: true
DIR: authentication
DEVICE: iPhone 16
TEST: false
SCHEME: AuthenticationExample
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: iOS
- name: Setup
run: |
gem install xcpretty
Expand Down
21 changes: 17 additions & 4 deletions .github/workflows/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,19 @@ env:

jobs:
spm:
runs-on: macOS-15
name: spm (Xcode ${{ matrix.xcode }} - iOS)
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2", "26.4"]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
env:
OS: iOS
DEVICE: iPhone 16
DIR: config
SPM: true
SCHEME: ConfigExample
Expand All @@ -43,11 +52,15 @@ jobs:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: iOS
- name: Setup
run: |
cd config
../scripts/install_prereqs/config.sh
xcrun simctl boot "iPhone 16"
xcrun simctl boot "Firebase-iPhone-15-Pro"
- name: Build Swift
run: ./scripts/test.sh
18 changes: 11 additions & 7 deletions .github/workflows/crashlytics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,36 +32,40 @@ env:
jobs:
spm:
name: spm (Xcode ${{ matrix.xcode }} - ${{ matrix.os }})
runs-on: macOS-15
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2"]
xcode: ["26.2", "26.4"]
os: [iOS, tvOS, macOS, watchOS]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
- os: iOS
device: iPhone 16
test: false # flaky
- os: tvOS
device: Apple TV 4K (3rd generation) (at 1080p)
test: true
- os: macOS
device: localhost
test: true
- os: watchOS
device: Apple Watch Series 5 - 44m
test: false
env:
SETUP: crashlytics
SPM: true
DIR: crashlytics
OS: ${{ matrix.os }}
DEVICE: ${{ matrix.device }}
TEST: ${{ matrix.test }}
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: ${{ matrix.os }}
- name: Setup
run: |
gem install xcpretty
Expand Down
37 changes: 27 additions & 10 deletions .github/workflows/database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,32 @@ env:

jobs:
spm-buildonly:
name: spm (non-SwiftUI)
runs-on: macOS-15
name: spm (Xcode ${{ matrix.xcode }} - non-SwiftUI)
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2", "26.4"]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
env:
OS: iOS
SPM: true
DIR: database
DEVICE: iPhone 16
TEST: false
SCHEME: DatabaseExample
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: iOS
- name: Setup
run: |
gem install xcpretty
Expand All @@ -55,33 +67,38 @@ jobs:

spm:
name: spm (Xcode ${{ matrix.xcode }} - ${{ matrix.os }})
runs-on: macOS-15
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
xcode: ["26.2"]
xcode: ["26.2", "26.4"]
os: [iOS, tvOS, macOS]
include:
- xcode: "26.2"
runner: macos-15
- xcode: "26.4"
runner: macos-26
- os: iOS
device: iPhone 16
test: false
- os: tvOS
device: Apple TV 4K (3rd generation) (at 1080p)
test: true
- os: macOS
device: localhost
test: false # flaky macOS UITest: UITests.testStaticSignUpView() sometimes fails
env:
SETUP: database
SPM: true
DIR: database/DatabaseExampleSwiftUI/DatabaseExample
OS: ${{ matrix.os }}
DEVICE: ${{ matrix.device }}
TEST: ${{ matrix.test }}
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: Setup simulator
uses: ./.github/actions/setup_simulator
with:
platform: ${{ matrix.os }}
- name: Setup
run: |
gem install xcpretty
Expand Down
Loading
Loading