functions #1468
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
name: functions | |
on: | |
pull_request: | |
paths: | |
- 'FirebaseFunctions**' | |
- 'FirebaseSharedSwift**' | |
- '.github/workflows/functions.yml' | |
- 'FirebaseAuth/Interop/*.h' | |
- 'FirebaseMessaging/Interop/*.h' | |
- 'FirebaseTestingSupport/Functions/**' | |
- 'FirebaseCombineSwift/Sources/Functions/**' | |
- 'scripts/setup_quickstart.sh' | |
- 'Gemfile*' | |
schedule: | |
# Run every day at 1am (PST) - cron uses UTC times | |
- cron: '0 9 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
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, macos, watchos] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Integration Test Server | |
run: FirebaseFunctions/Backend/start.sh synchronous | |
- name: Build and test | |
run: | | |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFunctions.podspec --platforms=${{ matrix.target }} | |
spm-integration: | |
# 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 | |
env: | |
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 | |
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: Integration Test Server | |
run: FirebaseFunctions/Backend/start.sh synchronous | |
- name: Functions Unit Tests | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsUnit iOS spm | |
- name: iOS Swift Integration Tests (including Swift library) | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsIntegration iOS spm | |
- name: iOS ObjC Integration Tests (using Swift library) | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctionsObjCIntegration iOS spm | |
- name: Combine Unit Tests | |
run: scripts/third_party/travis/retry.sh ./scripts/build.sh FunctionsCombineUnit iOS spm | |
spm-unit: | |
# Don't run on private repo. | |
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, macOS, catalyst, watchOS] | |
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 FirebaseFunctionsUnit ${{ matrix.target }} spm | |
quickstart: | |
# 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' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
LEGACY: true | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh functions | |
- name: install secret googleservice-info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \ | |
quickstart-ios/functions/GoogleService-Info.plist "$plist_secret" | |
- name: Setup custom URL scheme | |
run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist | |
- name: Test objc quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true) | |
- name: Test swift quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift) | |
quickstart-ftl-cron-only: | |
# Don't run on private repo | |
if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
LEGACY: true | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ruby/setup-ruby@v1 | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh functions | |
- name: install secret googleservice-info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \ | |
quickstart-ios/functions/GoogleService-Info.plist "$plist_secret" | |
- name: Setup custom URL scheme | |
run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist | |
- name: Build objc quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Functions) | |
- name: Build swift quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Functions swift) | |
- 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" | |
functions-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, macos] | |
flags: [ | |
'--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: Integration Test Server | |
run: FirebaseFunctions/Backend/start.sh synchronous | |
- name: PodLibLint Functions Cron | |
run: | | |
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \ | |
FirebaseFunctions.podspec --platforms=${{ matrix.target }} --use-static-frameworks |