aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 318f8134ba05d46eef4372be94893290512f8418 (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
93
94
95
96
97
98
99
100
101
sudo: false

language: java

matrix:
  fast_finish: true
  include:
  - jdk: openjdk7
    env: TASK=BUILD
    os: linux

  - jdk: oraclejdk8
    env: TASK=BUILD
    os: linux
    addons:
      apt:
        packages:
          # Install the JREs that are used for integration tests in
          # contrib/agent, but are not installed by default.
          - openjdk-6-jdk

  - env: TASK=CHECK_GIT_HISTORY
    os: linux

  # Work around https://github.com/travis-ci/travis-ci/issues/2317
  - env: TASK=BUILD
    os: osx

  allow_failures:
  # Allowing failures because osx builds are very slow.
  - env: TASK=BUILD
    os: osx

before_install:
  - git log --oneline --decorate --graph -30
  - if \[ "$TASK" == "BUILD" \]; then
      mkdir -p $HOME/.gradle ;
      cat gradle/errorprone/warnings > $HOME/.gradle/gradle.properties ;
      cat gradle/errorprone/experimental_errors >> $HOME/.gradle/gradle.properties ;
      cat gradle/errorprone/experimental_warnings  >> $HOME/.gradle/gradle.properties ;
      cat gradle/errorprone/experimental_suggestions  >> $HOME/.gradle/gradle.properties ;
    fi

# Skip Travis' default Gradle install step. See http://stackoverflow.com/a/26575080.
install: true

script:
  # "./gradlew classes testClasses" is a workaround for
  # https://github.com/gradle/gradle/issues/2421.
  # See https://github.com/gradle/gradle/issues/2421#issuecomment-319916874.

  # OS X is a separate case, because the JDK version is determined by the OS X image:
  # https://docs.travis-ci.com/user/reference/osx/#JDK-and-OS-X
  - case "$TASK" in
      "CHECK_GIT_HISTORY")
        python check-git-history.py ;;
      "BUILD")
        case "$TRAVIS_OS_NAME" in
          "linux")
            export JAVA8_HOME="$(jdk_switcher home oraclejdk8)" ;
            case "$TRAVIS_JDK_VERSION" in
              "oraclejdk8")
                export JAVA_HOMES="$(jdk_switcher home openjdk6)/jre:$(jdk_switcher home openjdk7)/jre:$(jdk_switcher home oraclejdk8)/jre:$(jdk_switcher home oraclejdk9)" ;
                ./gradlew clean assemble --stacktrace ;
                ./gradlew check :opencensus-all:jacocoTestReport ;;
              "openjdk7")
                jdk_switcher use oraclejdk8 ;
                ./gradlew classes testClasses ;
                jdk_switcher use openjdk7 ;
                ./gradlew clean assemble --stacktrace ;
                ./gradlew check ;;
              *)
                echo "Unknown JDK version $TRAVIS_JDK_VERSION" ;
                exit 1 ;;
            esac ;;
          "osx")
            ./gradlew clean assemble --stacktrace ;
            ./gradlew check ;;
          *)
            echo "Unknown OS name $TRAVIS_OS_NAME" ;
            exit 1 ;;
        esac ;;
      *)
        echo "Unknown task $TASK" ;
        exit 1 ;;
    esac

after_success:
  - if \[ "$TASK" == "BUILD" \] && \[ "$TRAVIS_JDK_VERSION" == "oraclejdk8" \] && \[ "$TRAVIS_OS_NAME" = linux \]; then
      ./gradlew :opencensus-all:coveralls --stacktrace ;
      bash <(curl -s https://codecov.io/bash) ;
    fi

before_cache:
  - rm -fr $HOME/.gradle/caches/modules-2/modules-2.lock

cache:
  directories:
    - $HOME/.gradle
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/