client_app.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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 1am (PDT) / 4am (EDT) - 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. matrix:
  27. #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
  28. platform: [iOS]
  29. scheme: [ClientApp]
  30. os: [macos-14, macos-15]
  31. include:
  32. - os: macos-14
  33. xcode: Xcode_16.2
  34. - os: macos-15
  35. xcode: Xcode_16.4
  36. runs-on: ${{ matrix.os }}
  37. steps:
  38. - uses: actions/checkout@v4
  39. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  40. with:
  41. cache_key: ${{ matrix.os }}
  42. - name: Xcode
  43. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  44. - name: Build Client App - ${{ matrix.platform }}
  45. run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild
  46. client-app-spm-source-firestore:
  47. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  48. env:
  49. FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  50. FIREBASE_SOURCE_FIRESTORE: 1
  51. strategy:
  52. matrix:
  53. #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
  54. platform: [iOS]
  55. scheme: [ClientApp]
  56. os: [macos-14, macos-15]
  57. include:
  58. - os: macos-14
  59. xcode: Xcode_16.2
  60. - os: macos-15
  61. xcode: Xcode_16.4
  62. runs-on: ${{ matrix.os }}
  63. steps:
  64. - uses: actions/checkout@v4
  65. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  66. with:
  67. cache_key: ${{ matrix.os }}
  68. - name: Xcode
  69. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  70. - name: Build Client App - ${{ matrix.platform }}
  71. run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild
  72. client-app-cocoapods:
  73. # Don't run on private repo unless it is a PR.
  74. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  75. strategy:
  76. matrix:
  77. scheme: [ClientApp-CocoaPods]
  78. os: [macos-14, macos-15]
  79. include:
  80. - os: macos-14
  81. xcode: Xcode_16.2
  82. - os: macos-15
  83. xcode: Xcode_16.4
  84. runs-on: ${{ matrix.os }}
  85. steps:
  86. - uses: actions/checkout@v4
  87. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  88. with:
  89. cache_key: ${{ matrix.os }}
  90. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  91. - name: Setup Bundler
  92. run: scripts/setup_bundler.sh
  93. - name: Xcode
  94. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  95. - name: Prereqs
  96. run: scripts/install_prereqs.sh ClientApp iOS xcodebuild
  97. - name: Build
  98. run: scripts/build.sh ${{ matrix.scheme }} iOS xcodebuild