functions #3578
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
name: functions | |
permissions: | |
contents: read | |
on: | |
workflow_dispatch: | |
pull_request: | |
paths: | |
- 'FirebaseFunctions**' | |
- 'FirebaseSharedSwift**' | |
- '.github/workflows/functions.yml' | |
- '.github/workflows/common.yml' | |
- '.github/workflows/common_cocoapods.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: | |
uses: ./.github/workflows/common_cocoapods.yml | |
with: | |
product: FirebaseFunctions | |
supports_swift6: true | |
setup_command: FirebaseFunctions/Backend/start.sh synchronous | |
spm-integration: | |
uses: ./.github/workflows/common.yml | |
strategy: | |
matrix: | |
target: [FirebaseFunctionsIntegration, FirebaseFunctionsObjCIntegration, FunctionsCombineUnit] | |
with: | |
target: ${{ matrix.target }} | |
platforms: iOS | |
setup_command: FirebaseFunctions/Backend/start.sh synchronous | |
spm-unit: | |
uses: ./.github/workflows/common.yml | |
with: | |
target: FirebaseFunctionsUnit | |
# TODO: Move to macos-14 and Xcode 15. The legacy quickstart uses material which doesn't build on Xcode 15. | |
# 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 | |
# # TODO: Move to macos-14 and Xcode 15. The legacy quickstart uses material which doesn't build on Xcode 15. | |
# runs-on: macos-12 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # 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 | |
# # TODO: Move to macos-14 and Xcode 15. The legacy quickstart uses material which doesn't build on Xcode 15. | |
# runs-on: macos-12 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
# - uses: actions/setup-python@v5 | |
# with: | |
# python-version: '3.11' | |
# - 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/firebase-test-lab@v1.4 | |
# 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-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: 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 |