Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 52 additions & 55 deletions .github/workflows/abtesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,70 +25,67 @@ concurrency:
cancel-in-progress: true

jobs:
spm:
uses: ./.github/workflows/common.yml
with:
target: ABTestingUnit
# spm:
# uses: ./.github/workflows/common.yml
# with:
# target: ABTestingUnit

catalyst:
uses: ./.github/workflows/common_catalyst.yml
with:
product: FirebaseABTesting
target: FirebaseABTesting-Unit-unit
# catalyst:
# uses: ./.github/workflows/common_catalyst.yml
# with:
# product: FirebaseABTesting
# target: FirebaseABTesting-Unit-unit

pod_lib_lint:
uses: ./.github/workflows/common_cocoapods.yml
with:
product: FirebaseABTesting
# pod_lib_lint:
# uses: ./.github/workflows/common_cocoapods.yml
# with:
# product: FirebaseABTesting

quickstart:
uses: ./.github/workflows/common_quickstart.yml
with:
product: ABTesting
is_legacy: true
setup_command: scripts/setup_quickstart.sh abtesting
plist_src_path: scripts/gha-encrypted/qs-database.plist.gpg
plist_dst_path: quickstart-ios/database/GoogleService-Info.plist
setup_command: scripts/setup_quickstart_spm.sh abtesting
plist_src_path: scripts/gha-encrypted/qs-abtesting.plist.gpg
plist_dst_path: quickstart-ios/abtesting/GoogleService-Info.plist
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

quickstart-ftl-cron-only:
# Don't run on private repo.
if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule'
# 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 }}
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: Setup quickstart
env:
LEGACY: true
run: scripts/setup_quickstart.sh abtesting
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Build swift quickstart
env:
LEGACY: true
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting)
- 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"
# env:
# plist_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: Setup quickstart
# env:
# run: scripts/setup_quickstart.sh abtesting
# - name: Install Secret GoogleService-Info.plist
# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
# quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
# - name: Xcode
# run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
# - name: Build swift quickstart
# env:
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting)
# - 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"

abtesting-cron-only:
needs: pod_lib_lint
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseABTesting
platforms: '[ "ios", "tvos", "macos" ]'
flags: '[ "--use-static-frameworks" ]'
# abtesting-cron-only:
# needs: pod_lib_lint
# uses: ./.github/workflows/common_cocoapods_cron.yml
# with:
# product: FirebaseABTesting
# platforms: '[ "ios", "tvos", "macos" ]'
# flags: '[ "--use-static-frameworks" ]'
143 changes: 71 additions & 72 deletions .github/workflows/auth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,76 +29,75 @@ concurrency:
cancel-in-progress: true

jobs:
spm:
uses: ./.github/workflows/common.yml
with:
target: AuthUnit
buildonly_platforms: macOS
# spm:
# uses: ./.github/workflows/common.yml
# with:
# target: AuthUnit
# buildonly_platforms: macOS

catalyst:
uses: ./.github/workflows/common_catalyst.yml
with:
product: FirebaseAuth
target: FirebaseAuth-Unit-unit
buildonly: true
# catalyst:
# uses: ./.github/workflows/common_catalyst.yml
# with:
# product: FirebaseAuth
# target: FirebaseAuth-Unit-unit
# buildonly: true

pod_lib_lint:
strategy:
matrix:
product: [FirebaseAuthInterop, FirebaseAuth]
uses: ./.github/workflows/common_cocoapods.yml
with:
product: ${{ matrix.product }}
buildonly_platforms: macOS
# pod_lib_lint:
# strategy:
# matrix:
# product: [FirebaseAuthInterop, FirebaseAuth]
# uses: ./.github/workflows/common_cocoapods.yml
# with:
# product: ${{ matrix.product }}
# buildonly_platforms: macOS

integration-tests:
# 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'
needs: spm
strategy:
matrix:
scheme: [ObjCApiTests, SwiftApiTests, AuthenticationExampleUITests]
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- uses: actions/cache/restore@v4
with:
path: .build
key: ${{ needs.spm.outputs.cache_key }}
- name: Install Secrets
run: |
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthCredentials.h.gpg \
FirebaseAuth/Tests/SampleSwift/ObjCApiTests/AuthCredentials.h "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg \
FirebaseAuth/Tests/SampleSwift/AuthenticationExample/SwiftApplication.plist "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/AuthCredentials.h.gpg \
FirebaseAuth/Tests/SampleSwift/AuthCredentials.h "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info.plist.gpg \
FirebaseAuth/Tests/SampleSwift/GoogleService-Info.plist "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info_multi.plist.gpg \
FirebaseAuth/Tests/SampleSwift/GoogleService-Info_multi.plist "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Sample.entitlements.gpg \
FirebaseAuth/Tests/SampleSwift/Sample.entitlements "$plist_secret"
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Credentials.swift.gpg \
FirebaseAuth/Tests/SampleSwift/SwiftApiTests/Credentials.swift "$plist_secret"
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: ([ -z $plist_secret ] || scripts/build.sh Auth iOS ${{ matrix.scheme }})
# integration-tests:
# # 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'
# needs: spm
# strategy:
# matrix:
# scheme: [ObjCApiTests, SwiftApiTests, AuthenticationExampleUITests]
# env:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
# FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
# runs-on: macos-15
# steps:
# - uses: actions/checkout@v4
# - uses: actions/cache/restore@v4
# with:
# path: .build
# key: ${{ needs.spm.outputs.cache_key }}
# - name: Install Secrets
# run: |
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthCredentials.h.gpg \
# FirebaseAuth/Tests/SampleSwift/ObjCApiTests/AuthCredentials.h "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/SwiftApplication.plist.gpg \
# FirebaseAuth/Tests/SampleSwift/AuthenticationExample/SwiftApplication.plist "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/AuthCredentials.h.gpg \
# FirebaseAuth/Tests/SampleSwift/AuthCredentials.h "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info.plist.gpg \
# FirebaseAuth/Tests/SampleSwift/GoogleService-Info.plist "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/GoogleService-Info_multi.plist.gpg \
# FirebaseAuth/Tests/SampleSwift/GoogleService-Info_multi.plist "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Sample.entitlements.gpg \
# FirebaseAuth/Tests/SampleSwift/Sample.entitlements "$plist_secret"
# scripts/decrypt_gha_secret.sh scripts/gha-encrypted/AuthSample/Credentials.swift.gpg \
# FirebaseAuth/Tests/SampleSwift/SwiftApiTests/Credentials.swift "$plist_secret"
# - name: Xcode
# run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
# - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
# with:
# timeout_minutes: 15
# max_attempts: 3
# retry_wait_seconds: 120
# command: ([ -z $plist_secret ] || scripts/build.sh Auth iOS ${{ matrix.scheme }})

quickstart:
uses: ./.github/workflows/common_quickstart.yml
with:
product: Authentication
is_legacy: false
setup_command: scripts/setup_quickstart.sh authentication
setup_command: scripts/setup_quickstart_spm.sh authentication
plist_src_path: scripts/gha-encrypted/qs-authentication.plist.gpg
plist_dst_path: quickstart-ios/authentication/GoogleService-Info.plist
run_tests: false
Expand Down Expand Up @@ -133,13 +132,13 @@ jobs:
# testapp_dir: quickstart-ios/build-for-testing
# test_type: "xctest"

auth-cron-only:
needs: pod_lib_lint
uses: ./.github/workflows/common_cocoapods_cron.yml
with:
product: FirebaseAuth
platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
flags: '[ "--use-static-frameworks" ]'
setup_command: scripts/configure_test_keychain.sh
secrets:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
# auth-cron-only:
# needs: pod_lib_lint
# uses: ./.github/workflows/common_cocoapods_cron.yml
# with:
# product: FirebaseAuth
# platforms: '[ "ios", "tvos --skip-tests", "macos --skip-tests", "watchos --skip-tests" ]'
# flags: '[ "--use-static-frameworks" ]'
# setup_command: scripts/configure_test_keychain.sh
# secrets:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
40 changes: 18 additions & 22 deletions .github/workflows/common_quickstart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ on:
type: string
required: true

# Whether to test the legacy version of the quickstart.
is_legacy:
type: boolean
required: true
# The branch to checkout in the quickstart repo.
quickstart_branch:
type: string
required: false
# default: 'main' # TODO: Revert to main before merging.
default: 'nc/quickstarts'

# The path to the encrypted `GoogleService-Info.plist` file.
plist_src_path:
Expand All @@ -44,14 +46,6 @@ on:
type: string
required: true

# The type of quickstart to test.
#
# Options: [swift, objc]
quickstart_type:
type: string
required: false
default: objc

# Whether to run tests or just build. Defaults to true.
run_tests:
type: boolean
Expand All @@ -68,15 +62,18 @@ on:

jobs:
quickstart:
name: quickstart (${{ inputs.product }})
# Run on the main repo's scheduled jobs or pull requests and manual workflow invocations.
if: (github.repository == 'firebase/firebase-ios-sdk' && github.event_name == 'schedule') || contains(fromJSON('["pull_request", "workflow_dispatch"]'), github.event_name)
env:
plist_secret: ${{ secrets.plist_secret }}
LEGACY: ${{ inputs.is_legacy && true || '' }}
QUICKSTART_BRANCH: ${{ inputs.quickstart_branch }}
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Prereqs
run: gem install xcpretty
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Run setup command.
Expand All @@ -87,17 +84,16 @@ jobs:
${{ inputs.plist_src_path }} \
${{ inputs.plist_dst_path }} \
"$plist_secret"
- name: Build ${{ inputs.product }} Quickstart (${{ inputs.quickstart_type }} / ${{ inputs.is_legacy && 'Legacy' || 'Non-Legacy' }})
- name: Build ${{ inputs.product }} Quickstart
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: |
scripts/test_quickstart.sh \
SPM=true DIR=${{ inputs.product }} scripts/test_quickstart.sh \
${{ inputs.product }} \
${{ inputs.run_tests }} \
${{ inputs.quickstart_type }}
${{ inputs.run_tests }}
# Failure sequence to upload artifact.
- id: lowercase_product
if: ${{ failure() }}
Expand All @@ -107,8 +103,8 @@ jobs:
- name: Remove data before upload.
if: ${{ failure() }}
run: scripts/remove_data.sh ${{ steps.lowercase_product.outputs.lowercase_product }}
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_${{ steps.lowercase_product.outputs.lowercase_product }}
path: quickstart-ios/
# - uses: actions/upload-artifact@v4
# if: ${{ failure() }}
# with:
# name: quickstart_artifacts_${{ steps.lowercase_product.outputs.lowercase_product }}
# path: quickstart-ios/
Loading
Loading