client_app.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. name: client_app
  2. on:
  3. pull_request:
  4. paths:
  5. - ".github/workflows/client_app.yml"
  6. - "Package.swift"
  7. - ".swiftpm/*"
  8. - "*.podspec"
  9. - "scripts/install_prereqs.sh"
  10. - "scripts/build.sh"
  11. - "IntegrationTesting/ClientApp/**"
  12. - "Gemfile*"
  13. schedule:
  14. # Run every day at 12am (PST) - cron uses UTC times
  15. - cron: "0 8 * * *"
  16. env:
  17. FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  18. concurrency:
  19. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  20. cancel-in-progress: true
  21. jobs:
  22. client-app-spm:
  23. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  24. runs-on: macos-14
  25. strategy:
  26. matrix:
  27. #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
  28. platform: [iOS]
  29. scheme: [ClientApp-iOS13]
  30. # TODO(ncooke3): Re-enable after updating Firestore binary.
  31. #scheme: [ClientApp, ClientApp-iOS13]
  32. steps:
  33. - uses: actions/checkout@v4
  34. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  35. with:
  36. cache_key: ${{ matrix.os }}
  37. - name: Xcode
  38. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  39. - name: Build Client App –– ${{ matrix.platform }}
  40. run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild
  41. client-app-spm-source-firestore:
  42. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  43. env:
  44. FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  45. FIREBASE_SOURCE_FIRESTORE: 1
  46. runs-on: macos-14
  47. strategy:
  48. matrix:
  49. #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
  50. platform: [iOS]
  51. scheme: [ClientApp, ClientApp-iOS13]
  52. steps:
  53. - uses: actions/checkout@v4
  54. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  55. with:
  56. cache_key: ${{ matrix.os }}
  57. - name: Xcode
  58. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  59. - name: Build Client App –– ${{ matrix.platform }}
  60. run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild
  61. client-app-cocoapods:
  62. # Don't run on private repo unless it is a PR.
  63. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  64. runs-on: macos-14
  65. strategy:
  66. matrix:
  67. scheme: [ClientApp-CocoaPods, ClientApp-CocoaPods-iOS13]
  68. steps:
  69. - uses: actions/checkout@v4
  70. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  71. with:
  72. cache_key: ${{ matrix.os }}
  73. - uses: ruby/setup-ruby@v1
  74. - name: Setup Bundler
  75. run: scripts/setup_bundler.sh
  76. - name: Xcode
  77. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  78. - name: Prereqs
  79. run: scripts/install_prereqs.sh ClientApp iOS xcodebuild
  80. - name: Build
  81. run: scripts/build.sh ${{ matrix.scheme }} iOS xcodebuild