summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: a60c40289f0d006c97060970e42ee926e6acace2 (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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
language: c
cache: ccache

before_install:
    - if [ -n "$COVERALLS" ]; then
          pip install --user cpp-coveralls;
      fi;

addons:
    apt:
        packages:
            - ccache
            - clang-3.6
            - gcc-5
            - g++-5
            - golang
            - binutils-mingw-w64
            - gcc-mingw-w64
        sources:
            - llvm-toolchain-precise-3.6
            - ubuntu-toolchain-r-test

os:
    - linux
    - osx

compiler:
    - clang
    - gcc

env:
    - CONFIG_OPTS="" DESTDIR="_install"
    - CONFIG_OPTS="--debug no-shared enable-crypto-mdebug enable-rc5 enable-md2"
    - CONFIG_OPTS="no-pic --strict-warnings" BUILDONLY="yes" CHECKDOCS="yes"
    - CONFIG_OPTS="no-engine no-shared --strict-warnings" BUILDONLY="yes"
    - CONFIG_OPTS="no-stdio --strict-warnings" BUILDONLY="yes"

matrix:
    include:
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="--strict-warnings no-deprecated" BUILDONLY="yes"
        - os: linux
          compiler: gcc-5
          env: CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-nextprotoneg enable-weak-ssl-ciphers enable-external-tests no-shared -DPEDANTIC -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" COVERALLS="yes" BORINGSSL_TESTS="yes" CXX="g++-5"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="enable-msan"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg -fno-sanitize=alignment no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2 no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
        - os: linux
          compiler: gcc-5
          env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC"
        - os: linux
          compiler: gcc-5
          env: CONFIG_OPTS="--strict-warnings enable-tls1_3" COMMENT="Move to the BORINGTEST build when interoperable"
        - os: linux
          compiler: i686-w64-mingw32-gcc
          env: CONFIG_OPTS="no-stdio" BUILDONLY="yes"
        - os: linux
          compiler: i686-w64-mingw32-gcc
          env: CONFIG_OPTS="no-pic"
        - os: linux
          compiler: x86_64-w64-mingw32-gcc
          env: CONFIG_OPTS="no-pic"
    exclude:
        - os: linux
          compiler: clang
        - os: osx
          compiler: gcc

before_script:
    - if [ -n "$DESTDIR" ]; then
          sh .travis-create-release.sh $TRAVIS_OS_NAME;
          tar -xvzf _srcdist.tar.gz;
          mkdir _build;
          cd _build;
          srcdir=../_srcdist;
          top=..;
      else
          srcdir=.;
          top=.;
      fi
    - if [ "$CC" == i686-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format;
      elif [ "$CC" == x86_64-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format;
      else
          if which ccache >/dev/null && [ "$CC" != clang-3.6 ]; then
              CC="ccache $CC";
          fi;
          $srcdir/config -v $CONFIG_OPTS;
      fi
    - cd $top

script:
    - if [ -z "$BUILDONLY" ]; then
          make="make -s";
      else
          make="make";
      fi
    - top=${PWD}
    - if [ -n "$DESTDIR" ]; then
          cd _build;
      fi
    - $make update
    - if [ -n "$CHECKDOCS" ]; then
          $make doc-nits;
      fi
    - $make
    - if [ -z "$BUILDONLY" ]; then
          if [ -n "$CROSS_COMPILE" ]; then
              sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine;
              export EXE_SHELL="wine" WINEPREFIX=`pwd`;
          fi;
          HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test;
      else
          $make build_tests;
      fi
    - if [ -n "$DESTDIR" ]; then
          mkdir "$top/$DESTDIR";
          $make install install_docs DESTDIR="$top/$DESTDIR";
      fi
    - cd $top

after_success:
    - if [ -n "$COVERALLS" ]; then
          coveralls -b . --gcov gcov-5 --gcov-options '\-lp';
      fi;

notifications:
    email:
        secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="