.travis.yml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. os: osx
  2. osx_image: xcode11
  3. language: objective-c
  4. cache:
  5. bundler: true
  6. cocoapods: true
  7. directories:
  8. # Built-in support for ccache doesn't seem to pick this up
  9. - $HOME/.ccache
  10. stages:
  11. - test
  12. jobs:
  13. include:
  14. # The order of builds matters (even though they are run in parallel):
  15. # Travis will schedule them in the same order they are listed here.
  16. - stage: test
  17. env:
  18. - PROJECT=Core METHOD=pod-lib-lint
  19. script:
  20. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=ios
  21. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=tvos
  22. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=macos
  23. - stage: test
  24. osx_image: xcode10.3
  25. env:
  26. - PROJECT=Core METHOD=pod-lib-lint
  27. script:
  28. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCore.podspec --skip-tests --platforms=ios
  29. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=ios
  30. - stage: test
  31. if: type = cron
  32. env:
  33. - PROJECT=CoreCron METHOD=pod-lib-lint
  34. script:
  35. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=ios --use-libraries
  36. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=tvos --use-libraries
  37. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=macos --use-libraries
  38. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=ios --use-modular-headers
  39. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=tvos --use-modular-headers
  40. - travis_retry ./scripts/pod_lib_lint.rb FirebaseCoreDiagnostics.podspec --platforms=macos --use-modular-headers
  41. - stage: test
  42. osx_image: xcode10.3
  43. env:
  44. - PROJECT=ABTesting METHOD=pod-lib-lint
  45. script:
  46. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=ios
  47. - stage: test
  48. osx_image: xcode10.3
  49. env:
  50. - PROJECT=Auth PLATFORM=iOS METHOD=xcodebuild
  51. script:
  52. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=ios
  53. - stage: test
  54. osx_image: xcode10.3
  55. env:
  56. - PROJECT=InstanceID METHOD=pod-lib-lint
  57. script:
  58. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=ios
  59. - stage: test
  60. osx_image: xcode10.3
  61. env:
  62. - PROJECT=Database PLATFORM=all METHOD=xcodebuild
  63. script:
  64. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=ios
  65. - stage: test
  66. osx_image: xcode10.3
  67. env:
  68. - PROJECT=DynamicLinks METHOD=pod-lib-lint
  69. script:
  70. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDynamicLinks.podspec
  71. - stage: test
  72. osx_image: xcode10.3
  73. env:
  74. - PROJECT=Messaging METHOD=pod-lib-lint
  75. script:
  76. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=ios
  77. - stage: test
  78. osx_image: xcode10.3
  79. env:
  80. - PROJECT=RemoteConfig METHOD=pod-lib-lint
  81. script:
  82. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=ios --skip-tests
  83. - stage: test
  84. osx_image: xcode10.3
  85. env:
  86. - PROJECT=Storage PLATFORM=all METHOD=xcodebuild
  87. script:
  88. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --skip-tests --platforms=ios
  89. - stage: test
  90. env:
  91. - PROJECT=Functions METHOD=pod-lib-lint
  92. before_install:
  93. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh # Start integration test server
  94. script:
  95. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec
  96. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-static-frameworks
  97. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-libraries
  98. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-modular-headers
  99. - stage: test
  100. osx_image: xcode10.3
  101. env:
  102. - PROJECT=Functions METHOD=pod-lib-lint
  103. before_install:
  104. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh # Start integration test server
  105. script:
  106. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec
  107. - stage: test
  108. osx_image: xcode10.3
  109. env:
  110. - PROJECT=Crashlytics METHOD=pod-lib-lint
  111. script:
  112. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCrashlytics.podspec --platforms=ios
  113. - stage: test
  114. env:
  115. - PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild
  116. before_install:
  117. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
  118. script:
  119. - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
  120. - stage: test
  121. osx_image: xcode10.3
  122. env:
  123. - PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild
  124. before_install:
  125. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
  126. script:
  127. - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
  128. - stage: test
  129. if: type = cron
  130. env:
  131. - PROJECT=InAppMessaging PLATFORM=iPad METHOD=xcodebuild
  132. before_install:
  133. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
  134. script:
  135. - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
  136. - stage: test
  137. osx_image: xcode10.3
  138. env:
  139. - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild
  140. before_install:
  141. - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
  142. script:
  143. - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
  144. - stage: test
  145. env:
  146. - PROJECT=GoogleUtilities METHOD=pod-lib-lint
  147. script:
  148. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec
  149. - stage: test
  150. osx_image: xcode10.3
  151. env:
  152. - PROJECT=GoogleUtilities METHOD=pod-lib-lint
  153. script:
  154. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=ios
  155. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=tvos
  156. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=macos
  157. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks --platforms=ios
  158. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks --platforms=tvos
  159. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks --platforms=macos
  160. - stage: test
  161. if: type = cron
  162. env:
  163. - PROJECT=GoogleUtilitiesCron METHOD=pod-lib-lint
  164. script:
  165. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=ios --skip-tests
  166. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=tvos --skip-tests
  167. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=macos --skip-tests
  168. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=ios
  169. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=tvos
  170. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=macos
  171. - stage: test
  172. env:
  173. - PROJECT=GoogleUtilitiesComponents METHOD=pod-lib-lint
  174. script:
  175. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilitiesComponents.podspec
  176. - stage: test
  177. osx_image: xcode10.3
  178. env:
  179. - PROJECT=GoogleUtilitiesComponents METHOD=pod-lib-lint
  180. script:
  181. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilitiesComponents.podspec
  182. - stage: test
  183. if: type = cron
  184. env:
  185. - PROJECT=GoogleUtilitiesComponentsCron METHOD=pod-lib-lint
  186. script:
  187. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilitiesComponents.podspec --use-libraries
  188. - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilitiesComponents.podspec --use-modular-headers
  189. - stage: test
  190. env:
  191. - PROJECT=Firebase METHOD=pod-lib-lint
  192. script:
  193. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec
  194. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-static-frameworks
  195. # pod lib lint to check build and warnings for static library build - only on cron jobs
  196. - stage: test
  197. if: type = cron
  198. env:
  199. - PROJECT=InAppMessagingCron METHOD=pod-lib-lint
  200. script:
  201. - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-libraries
  202. - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-modular-headers
  203. - stage: test
  204. osx_image: xcode10.3
  205. env:
  206. - PROJECT=GoogleDataTransport METHOD=pod-lib-lint
  207. script:
  208. - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=ios
  209. # Validate Cocoapods configurations
  210. # This may take long time, so we would like to run it only once all other tests pass
  211. - stage: test
  212. if: type = cron
  213. env:
  214. - POD_CONFIG_DIR=Cocoapods_multiprojects_frameworks
  215. script:
  216. - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
  217. - stage: test
  218. if: type = cron
  219. env:
  220. - POD_CONFIG_DIR=Cocoapods_multiprojects_staticLibs
  221. script:
  222. - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
  223. allow_failures:
  224. # Run fuzz tests only on cron jobs.
  225. - stage: test
  226. # if: type = cron
  227. env:
  228. - PROJECT=Firestore PLATFORM=iOS METHOD=fuzz
  229. before_install:
  230. - ./scripts/install_prereqs.sh
  231. script:
  232. # The travis_wait is necessary because fuzzing runs for 40 minutes.
  233. - travis_wait 45 ./scripts/fuzzing_ci.sh
  234. branches:
  235. only:
  236. - master
  237. - firebase7-main