performance #1936
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Merge the yml file to master branch for the cron job schedule to be effective. | |
# Reference: https://github.community/t/on-schedule-per-branch/17525 | |
name: performance | |
on: | |
pull_request: | |
paths: | |
# Performance sources | |
- 'FirebasePerformance/**' | |
# Podspec | |
- 'FirebasePerformance.podspec' | |
# YML configuration file | |
- '.github/workflows/performance.yml' | |
# Rebuild on Ruby infrastructure changes | |
- 'Gemfile*' | |
schedule: | |
# Run every day at 11pm (PST) - 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: | |
# 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-12 | |
strategy: | |
matrix: | |
target: [iOS, tvOS] | |
test: [unit, proddev] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: ${{ matrix.os }} | |
- uses: ruby/setup-ruby@v1 | |
- 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 }} | |
# Podspec lint check for Firebase Performance | |
pod-lib-lint: | |
# 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-12 | |
strategy: | |
matrix: | |
target: [ios, tvos] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Build | |
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebasePerformance.podspec --skip-tests --platforms=${{ matrix.target }} | |
quickstart: | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh performance | |
- 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: Test objc quickstart | |
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true) | |
quickstart-ftl-cron-only: | |
if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh performance | |
- 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: Build swift quickstart | |
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Performance swift) | |
# - name: Build objc quickstart | |
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Performance) | |
- id: ftl_test | |
uses: FirebaseExtended/github-actions/[email protected] | |
with: | |
credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} | |
testapp_dir: quickstart-ios/build-for-testing | |
test_type: "xctest" | |
spm: | |
# 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-12 | |
strategy: | |
matrix: | |
target: [iOS] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: ${{ matrix.os }} | |
- name: Initialize xcodebuild | |
run: scripts/setup_spm_tests.sh | |
- name: Unit Tests | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh PerformanceUnit ${{ matrix.target }} spm | |
spm-cron: | |
# Don't run on private repo. | |
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
target: [tvOS] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: ${{ matrix.os }} | |
- name: Initialize xcodebuild | |
run: scripts/setup_spm_tests.sh | |
- name: Unit Tests | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh PerformanceUnit ${{ matrix.target }} spm | |
catalyst: | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: ${{ matrix.os }} | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Setup project and Build Catalyst | |
run: scripts/test_catalyst.sh FirebasePerformance build | |
performance-cron-only: | |
# Don't run on private repo. | |
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
target: [ios, tvos] | |
flags: [ | |
'--skip-tests --use-static-frameworks' | |
] | |
needs: pod-lib-lint | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: PodLibLint Performance Cron | |
run: | | |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebasePerformance.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }} |