name: watchos-sample

on:
  workflow_dispatch:
  pull_request:
    paths:
    # Sources
    - 'FirebaseABTesting/**'
    - 'FirebaseDatabase/**'
    - 'FirebaseRemoteConfig/**'
    - 'FirebaseStorage/**'
    # Sample
    - 'Example/watchOSSample/**'
    # Firebase Podspec
    - 'Firebase.podspec'
    # This file
    - '.github/workflows/watchos-sample.yml'
    # Rebuild on Ruby infrastructure changes
    - 'Gemfile*'
  schedule:
    # Run every day at 11pm (PDT) / 2am (EDT) - cron uses UTC times
    - cron:  '0 6 * * *'

concurrency:
    group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
    cancel-in-progress: true

jobs:
  watchos-sample-build-test:
    # 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'
    runs-on: macos-14
    steps:
    - uses: actions/checkout@v4
    - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
      with:
        cache_key: watchos-sample
    - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
    - name: Setup Bundler
      run: scripts/setup_bundler.sh
    - name: Prereqs
      run: scripts/install_prereqs.sh WatchOSSample watchOS
    - name: Build
      run: ([ -z $plist_secret ] || scripts/build.sh WatchOSSample watchOS)
