Skip to content

[Infra] Restore Danger #3631

[Infra] Restore Danger

[Infra] Restore Danger #3631

Workflow file for this run

# Merge the yml file to main branch for the cron job schedule to be effective.
# Reference: https://github.community/t/on-schedule-per-branch/17525
name: performance
permissions:
contents: read
on:
workflow_dispatch:
pull_request:
paths:
# Performance sources
- 'FirebasePerformance/**'
# Podspec
- 'FirebasePerformance.podspec'
# YML configuration file
- '.github/workflows/performance.yml'
# Re-usable workflows depended on by this file.
- '.github/workflows/common.yml'
- '.github/workflows/common_cocoapods.yml'
- '.github/workflows/common_catalyst.yml'
- '.github/workflows/common_quickstart.yml'
- '.github/workflows/common_cocoapods_cron.yml'
# Rebuild on Ruby infrastructure changes
- 'Gemfile*'
schedule:
# Run every day at 12am (PDT) / 3am (EDT) - cron uses UTC times
# Specified in format 'minutes hours day month dayofweek'
- cron: '0 7 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
spm:
uses: ./.github/workflows/common.yml
with:
target: PerformanceUnit
platforms: iOS, tvOS
catalyst:
uses: ./.github/workflows/common_catalyst.yml
with:
product: FirebasePerformance
target:
buildonly: true
# Build and run the unit tests for Firebase performance SDK.
performance:
# 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'
runs-on: macos-15
strategy:
matrix:
target: [iOS, tvOS]
test: [unit, proddev]
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- 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: Install xcpretty
run: gem install xcpretty
- name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10
run: scripts/third_party/travis/retry.sh scripts/build.sh Performance ${{ matrix.target }} ${{ matrix.test }}
pod_lib_lint:
uses: ./.github/workflows/common_cocoapods.yml
with:
product: FirebasePerformance
platforms: iOS, tvOS
#TODO: tests are not supported with Xcode 15 because the test spec depends on the iOS 8 GDCWebServer
buildonly_platforms: iOS, tvOS
quickstart:
uses: ./.github/workflows/common_quickstart.yml
with:
product: Performance
setup_command: scripts/setup_quickstart.sh performance
plist_src_path: scripts/gha-encrypted/qs-performance.plist.gpg
plist_dst_path: quickstart-ios/performance/GoogleService-Info.plist
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
performance-cron-only:
needs: pod_lib_lint
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebasePerformance
platforms: '[ "ios", "tvos" ]'
flags: '[ "--skip-tests --use-static-frameworks" ]'