Skip to content

[App Check] Add SPM AppCheckCore 12.x support #1112

[App Check] Add SPM AppCheckCore 12.x support

[App Check] Add SPM AppCheckCore 12.x support #1112

Workflow file for this run

name: unit_tests
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
pod-lib-lint:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-15]
podspec: [GoogleSignIn.podspec, GoogleSignInSwiftSupport.podspec]
flag: [
"",
"--use-static-frameworks"
]
include:
- podspec: GoogleSignInSwiftSupport.podspec
includePodspecFlag: "--include-podspecs='GoogleSignIn.podspec'"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Update Bundler
run: bundle update --bundler
- name: Install Ruby gems with Bundler
run: bundle install
- name: Lint podspec using local source
# See #400 (https://github.com/google/GoogleSignIn-iOS/issues/400)
run: |
pod lib lint ${{ matrix.podspec }} --verbose \
${{ matrix.includePodspecFlag }} ${{ matrix.flag }} --sources=https://github.com/firebase/SpecsDev.git,https://github.com/firebase/SpecsStaging.git,https://cdn.cocoapods.org/
spm-build-test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-15]
sdk: ['macosx', 'iphonesimulator']
# Also run the iOS unit tests with Thread Sanitizer as well.
# It is iOS simulator only: macOS's libobjc inlines the uncontended fast
# path of the lock behind atomic properties, and Thread Sanitizer, which
# only sees lock function calls, then reports false data races on them.
# The simulator's libobjc calls the lock functions, so Thread Sanitizer
# sees the synchronization.
thread-sanitizer: [false, true]
include:
- sdk: 'macosx'
destination: '"platform=OS X,arch=x86_64"'
- sdk: 'iphonesimulator'
destination: '"platform=iOS Simulator,name=iPhone 16,OS=18.6"'
exclude:
- sdk: 'macosx'
thread-sanitizer: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Build unit test target
run: |
xcodebuild \
-scheme GoogleSignIn-Package \
-sdk ${{ matrix.sdk }} \
-destination ${{ matrix.destination }} \
build-for-testing \
${{ matrix.thread-sanitizer && '-enableThreadSanitizer YES' || '' }}
- name: Run unit test target
run: |
xcodebuild \
-scheme GoogleSignIn-Package \
-sdk ${{ matrix.sdk }} \
-destination ${{ matrix.destination }} \
test-without-building \
${{ matrix.thread-sanitizer && '-enableThreadSanitizer YES' || '' }}
signin-sample-spm-build:
runs-on: macos-15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Build SignInSample (SPM)
run: |
xcodebuild \
-project Samples/ObjC/SignInSample/SignInSample.xcodeproj \
-scheme SignInSample \
-destination "generic/platform=iOS Simulator" \
build
signin-sample-pods-build:
runs-on: macos-15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Update Bundler
run: bundle update --bundler
- name: Install Ruby gems with Bundler
run: bundle install
- name: Install pods
run: bundle exec pod install --project-directory=Samples/ObjC/SignInSample
- name: Build SignInSample (CocoaPods)
run: |
xcodebuild \
-workspace Samples/ObjC/SignInSample/SignInSampleForPod.xcworkspace \
-scheme SampleForPod \
-destination "generic/platform=iOS Simulator" \
build
xcode-27-preview-test:
# Build and run the unit tests against the Xcode 27 preview image. Xcode 27
# beta is the only (thus, default) Xcode on that image, so no xcode-select
# step is needed. The image is preview, so this job does not block merges.
# https://github.com/actions/runner-images/issues/14404
runs-on: xcode-27
continue-on-error: true
strategy:
fail-fast: false
matrix:
sdk: ['macosx', 'iphonesimulator']
include:
- sdk: 'macosx'
destination: '"platform=macOS"'
- sdk: 'iphonesimulator'
destination: '"platform=iOS Simulator,name=iPhone 17,OS=27.0"'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Build unit test target
run: |
xcodebuild \
-scheme GoogleSignIn-Package \
-sdk ${{ matrix.sdk }} \
-destination ${{ matrix.destination }} \
build-for-testing
- name: Run unit test target
run: |
xcodebuild \
-scheme GoogleSignIn-Package \
-sdk ${{ matrix.sdk }} \
-destination ${{ matrix.destination }} \
test-without-building