summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: d044309b2968d05636a9de34a8b2bd718c12713c (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
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
            - 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"
    - CONFIG_OPTS="no-engine no-shared --strict-warnings" BUILDONLY="yes"
    - CONFIG_OPTS="no-stdio --strict-warnings" BUILDONLY="yes"

matrix:
    include:
        - os: linux
          compiler: gcc
          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" COVERALLS="yes"
        - 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"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2"
        - os: linux
          compiler: gcc-5
          env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC"
        - 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
    - if [ -n "$DESTDIR" ]; then
          cd _build;
          top=..;
      else
          top=.;
      fi
    - $make update
    - $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 make test;
      else
          $make build_tests;
      fi
    - if [ -n "$DESTDIR" ]; then
          mkdir "../$DESTDIR";
          $make install install_docs DESTDIR="../$DESTDIR";
      fi
    - cd $top

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

notifications:
    email:
        - openssl-commits@openssl.org