aboutsummaryrefslogtreecommitdiffhomepage
path: root/.travis.yml
blob: c9078734169f30714a8828a85a306d480c44aec6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
os: osx
osx_image: xcode9.2
language: objective-c
cache:
  - bundler
  - cocoapods

rvm: 2.3.1

jobs:
  include:
    - stage: checks
      # This only needs to be run once, so restrict it to an arbitrary combination
      before_install:
        - brew install clang-format
        - brew install swiftformat
      script:
        - ./scripts/check_whitespace.sh
        - ./scripts/check_copyright.sh
        - ./scripts/style.sh test-only $TRAVIS_COMMIT_RANGE
        # Google C++ style compliance
        - ./scripts/lint.sh $TRAVIS_COMMIT_RANGE

    - stage: test
      env:
        - PROJECT=Firebase PLATFORM=iOS
      before_install:
        # Add next line back with updated DeviceUDID for xcode9.1 if stability issues with simulator
        # - open -a "simulator" --args -CurrentDeviceUDID ABBD7191-486B-462F-80B4-AE08C5820DA1
        - bundle install
        - gem install xcpretty
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Example --repo-update
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Functions/Example
      script:
        - ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM

        # TODO fix os_log deprecation warning in FIRLogger to remove --allow-warnings
        - ./scripts/if_changed.sh bundle exec pod lib lint FirebaseCore.podspec --allow-warnings

        # TODO - Uncomment subsequent lines once FirebaseCore source repo is in public Specs repo
        #  - bundle exec pod lib lint FirebaseAuth.podspec
        #  - bundle exec pod lib lint FirebaseDatabase.podspec
        #  - bundle exec pod lib lint FirebaseMessaging.podspec
        #  - bundle exec pod lib lint FirebaseStorage.podspec
        #  - bundle exec pod lib lint FirebaseFirestore.podspec

    - stage: test
      env:
        - PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild
      before_install:
        - bundle install
        - gem install xcpretty
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Firestore/Example --repo-update
      script:
        - ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD

    - stage: test
      env:
        - PROJECT=Firestore PLATFORM=macOS METHOD=cmake
      before_install:
        - bundle install
        - gem install xcpretty
        - brew install cmake
        - brew install go # Somehow the build for Abseil requires this.
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Example --repo-update
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Firestore/Example --no-repo-update
      script:
        - ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD

    - stage: test
      env:
        - PROJECT=Firebase PLATFORM=macOS
      before_install:
        - bundle install
        - gem install xcpretty
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Example --repo-update
      script:
        - ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM

    - stage: test
      env:
        - PROJECT=Firebase PLATFORM=tvOS
      before_install:
        - bundle install
        - gem install xcpretty
        - ./scripts/if_changed.sh bundle exec pod install --project-directory=Example --repo-update
      script:
        - ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM

branches:
  only:
    - master