Files
firebase-ios-sdk/.github/workflows/_catalyst.yml
T

62 lines
2.0 KiB
YAML

name: _catalyst
permissions:
contents: read
on:
workflow_call:
inputs:
# The product to test be tested (e.g. `FirebaseABTesting`).
product:
type: string
required: true
# The target scheme to be tested (e.g. `FirebaseABTesting-Unit-unit`.
target:
type: string
required: true
# Whether to build-only. Defaults to false.
buildonly:
type: boolean
required: false
default: false
jobs:
# TODO: Can this be built via SPM?
catalyst:
# 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)
runs-on: macos-26
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.4.app/Contents/Developer
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 20
max_attempts: 3
retry_wait_seconds: 120
command: |
scripts/test_catalyst.sh \
${{ inputs.product }} \
${{ inputs.buildonly == true && 'build' || 'test' }} \
${{ inputs.target }}
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: ${{ failure() }}
with:
name: xcodebuild-logs-${{ inputs.target }}-maccatalyst
path: xcodebuild-*.log
if-no-files-found: error
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: ${{ failure() }}
with:
name: xcresults-${{ inputs.target }}-maccatalyst
path: xcresults/*
if-no-files-found: error