|
|
@@ -5,6 +5,8 @@ on:
|
|
|
paths:
|
|
|
- 'FirebaseAI**'
|
|
|
- '.github/workflows/firebaseai.yml'
|
|
|
+ - '.github/workflows/common.yml'
|
|
|
+ - '.github/workflows/common_cocoapods.yml'
|
|
|
- 'scripts/quickstart_build_spm.sh'
|
|
|
- 'scripts/quickstart_spm_xcodeproj.sh'
|
|
|
- 'Gemfile*'
|
|
|
@@ -24,80 +26,11 @@ permissions:
|
|
|
actions: write # Needed for actions/cache (save and restore)
|
|
|
|
|
|
jobs:
|
|
|
- spm-package-resolved:
|
|
|
- runs-on: macos-14
|
|
|
- outputs:
|
|
|
- cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
|
|
|
- env:
|
|
|
- FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
|
|
|
- steps:
|
|
|
- - uses: actions/checkout@v4
|
|
|
- - name: Generate Swift Package.resolved
|
|
|
- id: swift_package_resolve
|
|
|
- run: |
|
|
|
- swift package resolve
|
|
|
- - name: Generate cache key
|
|
|
- id: generate_cache_key
|
|
|
- run: |
|
|
|
- cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
|
|
|
- echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
|
|
|
- - uses: actions/cache/save@v4
|
|
|
- id: cache
|
|
|
- with:
|
|
|
- path: .build
|
|
|
- key: ${{ steps.generate_cache_key.outputs.cache_key }}
|
|
|
-
|
|
|
- spm-unit:
|
|
|
- strategy:
|
|
|
- matrix:
|
|
|
- include:
|
|
|
- - os: macos-14
|
|
|
- xcode: Xcode_16.2
|
|
|
- target: iOS
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: iOS
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: tvOS
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: macOS
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: watchOS
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: catalyst
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- target: visionOS
|
|
|
- runs-on: ${{ matrix.os }}
|
|
|
- needs: spm-package-resolved
|
|
|
- env:
|
|
|
- FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
|
|
|
- steps:
|
|
|
- - uses: actions/checkout@v4
|
|
|
- - uses: actions/cache/restore@v4
|
|
|
- with:
|
|
|
- path: .build
|
|
|
- key: ${{needs.spm-package-resolved.outputs.cache_key}}
|
|
|
- - name: Clone mock responses
|
|
|
- run: scripts/update_vertexai_responses.sh
|
|
|
- - name: Xcode
|
|
|
- run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
|
|
|
- - name: Install visionOS, if needed.
|
|
|
- if: matrix.target == 'visionOS'
|
|
|
- run: xcodebuild -downloadPlatform visionOS
|
|
|
- - name: Initialize xcodebuild
|
|
|
- run: scripts/setup_spm_tests.sh
|
|
|
- - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
|
|
|
- with:
|
|
|
- timeout_minutes: 120
|
|
|
- max_attempts: 3
|
|
|
- retry_on: error
|
|
|
- retry_wait_seconds: 120
|
|
|
- command: scripts/build.sh FirebaseAIUnit ${{ matrix.target }} spm
|
|
|
+ spm:
|
|
|
+ uses: ./.github/workflows/common.yml
|
|
|
+ with:
|
|
|
+ target: FirebaseAIUnit
|
|
|
+ setup_command: scripts/update_vertexai_responses.sh
|
|
|
|
|
|
testapp-integration:
|
|
|
strategy:
|
|
|
@@ -108,7 +41,7 @@ jobs:
|
|
|
- os: macos-15
|
|
|
xcode: Xcode_16.3
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
- needs: spm-package-resolved
|
|
|
+ needs: spm
|
|
|
env:
|
|
|
TEST_RUNNER_FIRAAppCheckDebugToken: ${{ secrets.VERTEXAI_INTEGRATION_FAC_DEBUG_TOKEN }}
|
|
|
TEST_RUNNER_VTXIntegrationImagen: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
|
|
|
@@ -119,7 +52,7 @@ jobs:
|
|
|
- uses: actions/cache/restore@v4
|
|
|
with:
|
|
|
path: .build
|
|
|
- key: ${{needs.spm-package-resolved.outputs.cache_key}}
|
|
|
+ key: ${{ needs.spm.outputs.cache_key }}
|
|
|
- name: Install Secret GoogleService-Info.plist
|
|
|
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/VertexAI/TestApp-GoogleService-Info.plist.gpg \
|
|
|
FirebaseAI/Tests/TestApp/Resources/GoogleService-Info.plist "$secrets_passphrase"
|
|
|
@@ -141,38 +74,12 @@ jobs:
|
|
|
path: xcodebuild-*.log
|
|
|
retention-days: 2
|
|
|
|
|
|
- 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'
|
|
|
- strategy:
|
|
|
- matrix:
|
|
|
- include:
|
|
|
- - os: macos-14
|
|
|
- xcode: Xcode_16.2
|
|
|
- swift_version: 5.9
|
|
|
- warnings:
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- swift_version: 5.9
|
|
|
- warnings:
|
|
|
- - os: macos-15
|
|
|
- xcode: Xcode_16.3
|
|
|
- swift_version: 6.0
|
|
|
- warnings:
|
|
|
- runs-on: ${{ matrix.os }}
|
|
|
- steps:
|
|
|
- - uses: actions/checkout@v4
|
|
|
- - name: Clone mock responses
|
|
|
- run: scripts/update_vertexai_responses.sh
|
|
|
- - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
|
|
|
- - name: Setup Bundler
|
|
|
- run: scripts/setup_bundler.sh
|
|
|
- - name: Xcode
|
|
|
- run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
|
|
|
- - name: Set Swift swift_version
|
|
|
- run: sed -i "" "s#s.swift_version = '5.9'#s.swift_version = '${{ matrix.swift_version}}'#" FirebaseAI.podspec
|
|
|
- - name: Build and test
|
|
|
- run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAI.podspec --platforms=${{ matrix.target }} ${{ matrix.warnings }}
|
|
|
+ pod_lib_lint:
|
|
|
+ uses: ./.github/workflows/common_cocoapods.yml
|
|
|
+ with:
|
|
|
+ product: FirebaseAI
|
|
|
+ supports_swift6: true
|
|
|
+ setup_command: scripts/update_vertexai_responses.sh
|
|
|
|
|
|
quickstart:
|
|
|
runs-on: macos-15
|