Skip to content

[AI] Nullable support in structured output and more integration tests #107

[AI] Nullable support in structured output and more integration tests

[AI] Nullable support in structured output and more integration tests #107

Workflow file for this run

name: sdk.ai
on:
pull_request:
paths:
- 'FirebaseAI**'
- '.github/workflows/sdk.ai.yml'
- '.github/workflows/_spm.yml'
- '.github/workflows/_cocoapods.yml'
- 'scripts/build.sh'
- 'scripts/quickstart_build_spm.sh'
- 'scripts/update_firebase_spm_dependency.sh'
- 'Gemfile*'
# Do not run for documentation-only PRs.
- '!**.md'
schedule:
# Run every day at 12am (PDT) / 3am (EDT) - cron uses UTC times
- cron: '0 7 * * *'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read # Needed for actions/checkout
actions: write # Needed for actions/cache (save and restore)
jobs:
spm:
strategy:
matrix:
target: [FirebaseAILogicUnit, FirebaseAIUnit]
uses: ./.github/workflows/_spm.yml
with:
target: ${{ matrix.target }}
setup_command: scripts/update_vertexai_responses.sh
testapp-integration:
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
strategy:
matrix:
include:
- os: macos-15
target: iOS
xcode: Xcode_16.4
- os: macos-26
target: iOS
xcode: Xcode_26.1
runs-on: ${{ matrix.os }}
needs: spm
env:
TEST_RUNNER_FIRAAppCheckDebugToken: ${{ secrets.VERTEXAI_INTEGRATION_FAC_DEBUG_TOKEN }}
TEST_RUNNER_VTXIntegrationImagen: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
secrets_passphrase: ${{ secrets.GHASecretsGPGPassphrase1 }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: .build
key: ${{ needs.spm.outputs.cache_key }}
- name: Run integration tests
run: scripts/repo.sh tests run --secrets ./scripts/secrets/AI.json --platforms ${{ matrix.target }} --xcode ${{ matrix.xcode }} AI
- name: Upload xcodebuild logs
if: failure()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: xcodebuild-${{ matrix.target }}-${{ matrix.os }}-${{ matrix.xcode }}.log
path: xcodebuild-*.log
retention-days: 2
pod_lib_lint:
strategy:
matrix:
product: [FirebaseAILogic, FirebaseAI]
uses: ./.github/workflows/_cocoapods.yml
with:
product: ${{ matrix.product }}
supports_swift6: true
setup_command: scripts/update_vertexai_responses.sh
quickstart:
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
strategy:
matrix:
include:
- os: macos-15
xcode: Xcode_16.4
- os: macos-26
xcode: Xcode_26.1
runs-on: ${{ matrix.os }}
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name || 'main' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build Quickstart
run: scripts/quickstart_build_spm.sh FirebaseAI