[Infra] Common cocoapods pod lib lint job #2977
Workflow file for this run
This file contains hidden or 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 main branch for the cron job schedule to be effective. | |
# Reference: https://github.community/t/on-schedule-per-branch/17525 | |
name: performance | |
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' | |
# 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: | |
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@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: ${{ matrix.target }}${{ matrix.test }} | |
- 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: 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: | |
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-15 | |
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 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) | |
# TODO: The legacy ObjC quickstarts don't run with Xcode 15, re-able if we get these working. | |
# - 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-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- 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/firebase-test-lab@v1.4 | |
with: | |
credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} | |
testapp_dir: quickstart-ios/build-for-testing | |
test_type: "xctest" | |
performance-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] | |
flags: [ | |
'--skip-tests --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 Performance Cron | |
run: | | |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebasePerformance.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }} |