client_app.yml 3.5 KB

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