summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: ad56a5f3e9b10933845d384c5810dcde3468a1e4 (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
language: c
cache: ccache

before_install:
    - pip install --user cpp-coveralls

addons:
    apt:
        packages:
            - ccache
            - clang-3.6
            - gcc-5
            - binutils-mingw-w64
            - gcc-mingw-w64
            - wine
        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-weak-ssl-ciphers" COVERALLS="yes"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-shared enable-asan"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-shared enable-msan"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method -fno-sanitize=alignment"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-shared no-asm enable-asan enable-rc5 enable-md2"
        - os: linux
          compiler: clang-3.6
          env: CONFIG_OPTS="no-stdio"
        - 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-pic"
        - os: linux
          compiler: i686-w64-mingw32-gcc
          env: CONFIG_OPTS="no-stdio"
        - os: linux
          compiler: x86_64-w64-mingw32-gcc
          env: CONFIG_OPTS="no-pic"
        - os: linux
          compiler: x86_64-w64-mingw32-gcc
          env: CONFIG_OPTS="no-stdio"
    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
              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