firebase_app_check.yml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. name: firebase_app_check
  2. permissions:
  3. contents: read
  4. on:
  5. workflow_dispatch:
  6. pull_request:
  7. paths:
  8. - 'FirebaseAppCheck**'
  9. - '.github/workflows/firebase_app_check.yml'
  10. - '.github/workflows/common.yml'
  11. - '.github/workflows/common_cocoapods.yml'
  12. - '.github/workflows/common_catalyst.yml'
  13. - 'Gemfile*'
  14. schedule:
  15. # Run every day at 11pm (PST) - cron uses UTC times
  16. - cron: '0 7 * * *'
  17. concurrency:
  18. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  19. cancel-in-progress: true
  20. jobs:
  21. spm:
  22. strategy:
  23. matrix:
  24. target: [FirebaseAppCheckUnit, FirebaseAppCheckUnitSwift]
  25. uses: ./.github/workflows/common.yml
  26. with:
  27. target: ${{ matrix.target }}
  28. catalyst:
  29. uses: ./.github/workflows/common_catalyst.yml
  30. with:
  31. product: FirebaseAppCheck
  32. target: FirebaseAppCheck-Unit-unit
  33. pod_lib_lint:
  34. strategy:
  35. matrix:
  36. product: [FirebaseAppCheckInterop, FirebaseAppCheck]
  37. uses: ./.github/workflows/common_cocoapods.yml
  38. with:
  39. product: ${{ matrix.product }}
  40. buildonly_platforms: macOS
  41. diagnostics:
  42. # Don't run on private repo unless it is a PR.
  43. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  44. runs-on: macos-15
  45. strategy:
  46. matrix:
  47. diagnostic: [tsan, asan, ubsan]
  48. steps:
  49. - uses: actions/checkout@v4
  50. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  51. with:
  52. cache_key: ${{ matrix.diagnostics }}
  53. - name: Xcode
  54. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  55. - name: Initialize xcodebuild
  56. run: scripts/setup_spm_tests.sh
  57. - name: iOS Unit Tests
  58. run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseAppCheckUnit iOS spm ${{ matrix.diagnostic }}
  59. - name: Upload raw logs if failed
  60. if: ${{ failure() }}
  61. uses: actions/upload-artifact@v4
  62. with:
  63. name: failure-xcodebuild-raw-logs
  64. path: xcodebuild.log
  65. app_check-cron-only:
  66. # Don't run on private repo.
  67. if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
  68. runs-on: macos-15
  69. strategy:
  70. matrix:
  71. flags: [
  72. '--skip-tests --use-modular-headers'
  73. ]
  74. needs: pod_lib_lint
  75. steps:
  76. - uses: actions/checkout@v4
  77. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  78. - name: Xcode
  79. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  80. - name: Setup Bundler
  81. run: scripts/setup_bundler.sh
  82. - name: PodLibLint FirebaseAppCheck Cron
  83. # TODO: Remove --allow-warnings when stabilized.
  84. run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAppCheck.podspec --platforms=ios ${{ matrix.flags }}