Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 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
27 changes: 6 additions & 21 deletions .github/workflows/abtesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_quickstart.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Gemfile*'
schedule:
# Run every day at 2am (PDT) / 5am (EDT) - cron uses UTC times
Expand Down Expand Up @@ -85,25 +86,9 @@ jobs:
test_type: "xctest"

abtesting-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: macos-15
strategy:
matrix:
target: [ios, tvos, macos]
flags: [
'--use-static-frameworks'
]
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: PodLibLint ABTesting Cron
run: |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \
FirebaseABTesting.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseABTesting
platforms: '[ "ios", "tvos", "macos" ]'
flags: '[ "--use-static-frameworks" ]'
32 changes: 9 additions & 23 deletions .github/workflows/appdistribution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ on:
- '.github/workflows/common.yml'
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Gemfile*'
schedule:
# Run every day at 2am (PDT) / 5am (EDT) - cron uses UTC times
- cron: '0 9 * * *'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
spm:
Expand All @@ -41,24 +42,9 @@ jobs:
platforms: iOS # App Distro only supports iOS.

appdistribution-cron-only:
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: macos-15
strategy:
matrix:
target: [ios]
flags: [
'--use-static-frameworks'
]
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: PodLibLint App Distribution Cron
run: |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAppDistribution.podspec \
--platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseAppDistribution
platforms: '[ "ios" ]'
flags: '[ "--use-static-frameworks" ]'
39 changes: 10 additions & 29 deletions .github/workflows/auth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_quickstart.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg'
- 'Gemfile*'
schedule:
Expand Down Expand Up @@ -134,32 +135,12 @@ jobs:
# test_type: "xctest"

auth-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: macos-15
strategy:
matrix:
# The macos and tvos tests can hang, and watchOS doesn't have tests.
target: [ios, tvos --skip-tests, macos --skip-tests, watchos --skip-tests]
flags: [
'--use-static-frameworks'
]
needs: pod_lib_lint
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Configure test keychain
run: scripts/configure_test_keychain.sh
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
needs: pod_lib_lint
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseAuth
platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
flags: '[ "--use-static-frameworks" ]'
setup_command: scripts/configure_test_keychain.sh
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
80 changes: 80 additions & 0 deletions .github/workflows/common_cocoapods_cron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: common_cocoapods_cron

permissions:
contents: read

on:
workflow_call:
secrets:
plist_secret:
required: false
inputs:
# The product to test be tested (e.g. `FirebaseABTesting`).
product:
type: string
required: true

# JSON array of platforms to test against (e.g. `[ "ios", "tvos" ]`).
platforms:
type: string
required: true

# JSON array of flags to pass to pod lib lint. Each string in the array
# will create a separate matrix entry.
# e.g. `[ "--use-static-frameworks" ]`.
# To run with no flags, pass `[ "" ]`.
flags:
type: string
required: false
default: '[""]'

# A command to execute before testing.
setup_command:
type: string
required: false
default: ""

# The version of Xcode to use.
xcode:
type: string
required: false
default: "Xcode_16.4"

# The runner to use.
runs_on:
type: string
required: false
default: "macos-15"

jobs:
cron-job:
# This job is intended to be run on a schedule, on the main repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: ${{ inputs.runs_on }}
strategy:
matrix:
platform: ${{ fromJson(inputs.platforms) }}
flag: ${{ fromJson(inputs.flags) }}

steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/${{ inputs.xcode }}.app/Contents/Developer
- name: Run setup command, if needed.
if: inputs.setup_command != ''
env:
plist_secret: ${{ secrets.plist_secret }}
run: ${{ inputs.setup_command }}
- name: PodLibLint Cron
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: |
scripts/pod_lib_lint.rb \
${{ inputs.product }}.podspec --platforms=${{ matrix.platform }} ${{ matrix.flag }}
27 changes: 8 additions & 19 deletions .github/workflows/core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- '.github/workflows/common.yml'
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Gemfile*'
schedule:
# Run every day at 3am (PDT) / 6am (EDT) - cron uses UTC times
Expand Down Expand Up @@ -39,23 +40,11 @@ jobs:
product: FirebaseCore

core-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: macos-14
strategy:
matrix:
target: [ios, tvos, macos]
flags: [
'--use-static-frameworks'
]
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: PodLibLint Core Cron
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseCore
platforms: '[ "ios", "tvos", "macos" ]'
flags: '[ "--use-static-frameworks" ]'
runs_on: macos-14
xcode: Xcode_16.2
26 changes: 7 additions & 19 deletions .github/workflows/core_extension.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- '.github/workflows/core_extension.yml'
- '.github/workflows/common.yml'
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Gemfile*'
schedule:
# Run every day at 3am (PDT) / 6am (EDT) - cron uses UTC times
Expand All @@ -24,23 +25,10 @@ jobs:
with:
product: FirebaseCoreExtension

core-internal-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
runs-on: macos-15
strategy:
matrix:
target: [ios, tvos, macos]
flags: [
'--use-static-frameworks'
]
core-extension-cron-only:
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: PodLibLint CoreInternal Cron
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCoreExtension.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseCoreExtension
platforms: '[ "ios", "tvos", "macos" ]'
flags: '[ "--use-static-frameworks" ]'
24 changes: 6 additions & 18 deletions .github/workflows/core_internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- '.github/workflows/common.yml'
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Gemfile*'
schedule:
# Run every day at 3am (PDT) / 6am (EDT) - cron uses UTC times
Expand Down Expand Up @@ -40,22 +41,9 @@ jobs:
supports_swift6: true

core-internal-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
runs-on: macos-15
strategy:
matrix:
target: [ios, tvos, macos]
flags: [
'--use-static-frameworks'
]
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: PodLibLint CoreInternal Cron
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCoreInternal.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseCoreInternal
platforms: '[ "ios", "tvos", "macos" ]'
flags: '[ "--use-static-frameworks" ]'
31 changes: 6 additions & 25 deletions .github/workflows/crashlytics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_quickstart.yml'
- '.github/workflows/common_cocoapods_cron.yml'
- 'Interop/Analytics/Public/*.h'
- 'Gemfile*'
schedule:
Expand Down Expand Up @@ -98,29 +99,9 @@ jobs:
test_type: "xctest"

crashlytics-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'

runs-on: macos-15
strategy:
matrix:
# Disable watchos because it does not support XCTest.
target: [ios, tvos, macos, watchos --skip-tests]
flags: [
'--use-static-frameworks',
'--use-modular-headers --skip-tests'
]
needs: pod_lib_lint
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCrashlytics.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseCrashlytics
platforms: '[ "ios", "tvos", "macos", "watchos --skip-tests" ]'
flags: '[ "--use-static-frameworks", "--use-modular-headers --skip-tests" ]'
Loading
Loading