| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680 |
- os: osx
- osx_image: xcode11.2
- language: objective-c
- cache:
- - bundler
- - cocoapods
- stages:
- - checks
- - test
- before_script:
- - '[ ! -z $DANGER_GITHUB_API_TOKEN ] && bundle exec danger || echo "Skipping Danger for External Contributor"'
- jobs:
- include:
- - stage: checks
- # This only needs to be run once, so restrict it to an arbitrary combination
- before_install:
- - brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb
- - brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb
- - pip install flake8
- script:
- - ./scripts/check.sh --test-only
- # The order of builds matters (even though they are run in parallel):
- # Travis will schedule them in the same order they are listed here.
- - stage: test
- env:
- - PROJECT=Firebase PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- env:
- - PROJECT=Core METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Core METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=CoreCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=ios --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=tvos --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseCore.podspec --platforms=macos --use-modular-headers
- - stage: test
- env:
- - PROJECT=ABTesting METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=ABTesting METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=ABTestingCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=ios --use-modular-headers
- # One of the next two consistently hang on Travis. Commenting for now.
- # - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=tvos --use-modular-headers
- # - travis_retry ./scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=macos --use-modular-headers
- - stage: test
- env:
- - PROJECT=Auth PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=macos
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Auth PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=AuthCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=ios --use-modular-headers
- # The tvOS and macOS --use-modular-headers tests do not work on travis, perhaps because of interactive
- # keystore validation requirements? See https://travis-ci.org/firebase/firebase-ios-sdk/jobs/578656148
- # TODO(paulb777): Retry on next Xcode version update
- - stage: test
- env:
- - PROJECT=InstanceID METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=InstanceID METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=InstanceIDCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=ios --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=tvos --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=macos --use-modular-headers
- - stage: test
- env:
- - PROJECT=Database PLATFORM=all METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- # The pod lib lint tests are fast enough that it's not worth a separate stage.
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Database PLATFORM=all METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=DatabaseCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-libraries --skip-tests --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-libraries --skip-tests --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-libraries --skip-tests --platforms=macos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-modular-headers --skip-tests --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-modular-headers --skip-tests --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseDatabase.podspec --use-modular-headers --skip-tests --platforms=macos
- - stage: test
- env:
- - PROJECT=DynamicLinks METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDynamicLinks.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDynamicLinks.podspec --use-libraries
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDynamicLinks.podspec --use-modular-headers
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=DynamicLinks METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseDynamicLinks.podspec
- - stage: test
- env:
- - PROJECT=Messaging METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Messaging METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=MessagingCron METHOD=pod-lib-lint
- script:
- # FirebaseMessaging includes Swift unit tests so it is not testable with --use-libraries.
- # TODO(paulb777): Migrate FirebaseMessaging to pod gen driven tests with a separate test
- # target for Swift.
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=ios --use-libraries --skip-tests
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=tvos --use-libraries --skip-tests
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=macos --use-libraries --skip-tests
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=ios --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=tvos --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=macos --use-modular-headers
- - stage: test
- env:
- - PROJECT=RemoteConfig METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=RemoteConfig METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=RemoteConfigCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-libraries --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-libraries --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-libraries --platforms=macos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-modular-headers --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-modular-headers --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --use-modular-headers --platforms=macos
- - stage: test
- env:
- - PROJECT=Storage PLATFORM=all METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- # The pod lib lint tests are fast enough that it's not worth a separate stage.
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --skip-tests --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --skip-tests --platforms=tvos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --skip-tests --platforms=macos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Storage PLATFORM=all METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --skip-tests --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=StorageCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-libraries --skip-tests --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-libraries --skip-tests --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-libraries --skip-tests --platforms=macos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-modular-headers --skip-tests --platforms=ios
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-modular-headers --skip-tests --platforms=tvos
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseStorage.podspec --use-modular-headers --skip-tests --platforms=macos
- - stage: test
- env:
- - PROJECT=Functions METHOD=pod-lib-lint
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh # Start integration test server
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-libraries
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-modular-headers
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Functions METHOD=pod-lib-lint
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh # Start integration test server
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec
- - stage: test
- env:
- - PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- env:
- - PROJECT=InAppMessagingDisplay PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=InAppMessagingDisplay PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- env:
- - PROJECT=InAppMessagingDisplay PLATFORM=iPad METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- - stage: test
- env:
- - PROJECT=GoogleUtilities METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=GoogleUtilities METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec
- - stage: test
- if: type = cron
- env:
- - PROJECT=GoogleUtilitiesCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers
- - stage: test
- env:
- - PROJECT=Firebase METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAnalyticsInterop.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseAuthInterop.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessagingDisplay.podspec
- - stage: test
- env:
- - PROJECT=Firestore METHOD=pod-lib-lint
- script:
- # Eliminate the one warning from BoringSSL when CocoaPods 1.6.0 is available.
- # The travis_wait is necessary because the command takes more than 10 minutes.
- - travis_wait 30 ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFirestore.podspec --platforms=ios --allow-warnings --no-subspecs
- # pod lib lint to check build and warnings for static library build - only on cron jobs
- - stage: test
- if: type = cron
- env:
- - PROJECT=InAppMessagingCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessagingDisplay.podspec --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb FirebaseInAppMessagingDisplay.podspec --use-modular-headers
- - stage: test
- if: type = cron
- env:
- - PROJECT=Firestore METHOD=pod-lib-lint
- script:
- # TBD - non-portable path warnings
- # The travis_wait is necessary because the command takes more than 10 minutes.
- - travis_wait 45 ./scripts/pod_lib_lint.rb FirebaseFirestore.podspec --use-libraries --allow-warnings --no-subspecs
- - stage: test
- env:
- - PROJECT=GoogleDataTransport METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=macos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=tvos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=GoogleDataTransport METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=GoogleDataTransportCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=ios --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=macos --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=tvos --use-modular-headers
- - stage: test
- env:
- - PROJECT=GoogleDataTransportCCTSupport METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=ios
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=macos
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=tvos
- - stage: test
- osx_image: xcode10.2
- env:
- - PROJECT=GoogleDataTransportCCTSupport METHOD=pod-lib-lint
- script:
- - ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=ios
- - stage: test
- if: type = cron
- env:
- - PROJECT=GoogleDataTransportCCTSupportCron METHOD=pod-lib-lint
- script:
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=ios --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=macos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=tvos --use-libraries
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=ios --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=macos --use-modular-headers
- - travis_retry ./scripts/pod_lib_lint.rb GoogleDataTransportCCTSupport.podspec --platforms=tvos --use-modular-headers
- - stage: test
- env:
- - PROJECT=FirebasePod PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- # Daily test for symbol collisions between Firebase and CocoaPods.
- - stage: test
- if: type = cron
- env:
- - PROJECT=SymbolCollision PLATFORM=iOS METHOD=xcodebuild
- before_install:
- - ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- # Alternative platforms
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=macOS METHOD=cmake
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- # Test Firestore on Xcode 8 to use old llvm to ensure C++ portability.
- # Disabled while we resolve issues discussed in #4084 and #4085
- # - stage: test
- # osx_image: xcode8.3
- # env:
- # - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild XCODE_VERSION=8.3.3
- # before_install:
- # - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- # script:
- # - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=macOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=tvOS METHOD=xcodebuild
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
- # Firestore sanitizers
- - stage:
- env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild SANITIZERS=asan
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild SANITIZERS=tsan
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- # TODO(varconst): enable UBSan in xcodebuild. Right now if fails during
- # linkage (it works if enabled together with ASan, but it's supposed to be
- # usable on its own, too).
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=macOS METHOD=cmake SANITIZERS=asan
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- - stage: test
- env:
- - PROJECT=Firestore PLATFORM=macOS METHOD=cmake SANITIZERS=tsan
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD
- # Validate Cocoapods configurations
- # This may take long time, so we would like to run it only once all other tests pass
- # Validate Cocoapods 1.7.0 compatibility
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_frameworks
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_7_0_frameworks
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_staticLibs
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_7_0_staticLibs
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- # Validate Cocoapods 1.6.1 compatibility
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_6_1_frameworks
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- - stage: test
- if: type = cron
- env:
- - POD_CONFIG_DIR=Cocoapods1_6_1_staticLibs
- script:
- - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
- # FIS
- - stage: test
- env:
- - PROJECT=Installations PLATFORM=iOS METHOD=pod-lib-lint
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=ios --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=ios --use-libraries --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --use-modular-headers --platforms=ios --ignore-local-podspecs=FirebaseInstanceID.podspec
- - stage: test
- env:
- - PROJECT=Installations PLATFORM=macOS METHOD=pod-lib-lint
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=macos --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=macos --use-libraries --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --use-modular-headers --platforms=macos --ignore-local-podspecs=FirebaseInstanceID.podspec
- - stage: test
- env:
- - PROJECT=Installations PLATFORM=tvOS METHOD=pod-lib-lint
- before_install:
- - ./scripts/if_changed.sh ./scripts/install_prereqs.sh
- script:
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=tvos --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --platforms=tvos --use-libraries --ignore-local-podspecs=FirebaseInstanceID.podspec
- - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInstallations.podspec --use-modular-headers --platforms=tvos --ignore-local-podspecs=FirebaseInstanceID.podspec
- allow_failures:
- # Run fuzz tests only on cron jobs.
- - stage: test
- if: type = cron
- env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=fuzz
- before_install:
- - ./scripts/install_prereqs.sh
- script:
- # The travis_wait is necessary because fuzzing runs for 40 minutes.
- - travis_wait 45 ./scripts/fuzzing_ci.sh
- # TODO(varconst): UBSan for CMake. UBSan failures are non-fatal by default,
- # need to make them fatal for the purposes of the test run.
- # TODO(varconst): disallow sanitizers to fail once we fix all existing issues.
- - env:
- - PROJECT=Firestore PLATFORM=macOS METHOD=cmake SANITIZERS=tsan
- - env:
- - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild SANITIZERS=tsan
- - env:
- - PROJECT=GoogleDataTransportIntegrationTest PLATFORM=iOS METHOD=xcodebuild
- # TODO(varconst): enable if it's possible to make this flag work on build
- # stages. It's supposed to avoid waiting for jobs that are allowed to fail
- # before reporting the results.
- # fast_finish: true
- branches:
- only:
- - master
|