• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1dist: xenial
2sudo: false
3language: c
4
5env:
6  global:
7    - secure: "QD09MuUxftXRXtz7ZrB7S0NV/3O9yVhjvIlCSbXN8B87rNSDC8wxMThKMT7iZewnqGk53m+Up19PiMw5ERlHose5tm2cmY1FO/l+c9oAyWZaAL+4XNXryq6zI5F5FX5I61NbfqV3xcnfLTI2QIJF6WqDojNxhPjTbNzQGxIDuqw="
8
9matrix:
10  include:
11
12    # linux build
13    - os: linux
14      env:
15        - TEST="linux (gcc / valgrind)"
16      addons:
17        apt:
18          sources:
19            - ubuntu-toolchain-r-test
20          packages:
21            - gcc-6
22            - valgrind
23      script:
24        - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure
25        - make
26        - make runtest
27        - make runtest-valgrind
28        - make distclean
29        - mkdir build && cd build
30        - cmake ..
31        - make
32        - make test
33
34    # linux build with openssl
35    - os: linux
36      env:
37        - TEST="linux openssl (gcc / valgrind)"
38      addons:
39        apt:
40          sources:
41            - ubuntu-toolchain-r-test
42          packages:
43            - gcc-6
44            - valgrind
45      script:
46        - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure --enable-openssl
47        - make
48        - make runtest
49        - make runtest-valgrind
50        - make distclean
51        - mkdir build && cd build
52        - cmake -DENABLE_OPENSSL=ON ..
53        - make
54        - make test
55        - cd ..
56        - mkdir build_shared && cd build_shared
57        - cmake -DENABLE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON ..
58        - make
59        - make test
60
61    # linux build with openssl and clang
62    - os: linux
63      env:
64        - TEST="linux openssl (clang)"
65      addons:
66        apt:
67          packages:
68            - clang
69      script:
70        - CC=clang EXTRA_CFLAGS=-Werror ./configure --enable-openssl
71        - make
72        - make runtest
73
74    # linux build with nss
75    - os: linux
76      env:
77        - TEST="linux nss (gcc / valgrind)"
78      addons:
79        apt:
80          sources:
81            - ubuntu-toolchain-r-test
82          packages:
83            - gcc-6
84            - valgrind
85            - libnss3-dev
86      script:
87        - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure --enable-nss
88        - make
89        - make runtest
90        - make runtest-valgrind
91
92    # default osx build
93    - os: osx
94      env:
95        - TEST="osx"
96      script:
97        - EXTRA_CFLAGS=-Werror ./configure
98        - make
99        - make runtest
100        - make distclean
101        - mkdir build && cd build
102        - cmake ..
103        - make
104        - make test
105
106    # osx build with openssl
107    - os: osx
108      env:
109        - TEST="osx openssl"
110      before_install:
111            - brew install openssl
112      script:
113        - PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-openssl
114        - make
115        - make runtest
116        - make distclean
117        - mkdir build && cd build
118        - cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DENABLE_OPENSSL=ON ..
119        - make
120        - make test
121
122    # osx build with nss
123    - os: osx
124      env:
125        - TEST="osx nss"
126      before_install:
127            - brew install nss
128      script:
129        - PKG_CONFIG_PATH=/usr/local/opt/nss/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-nss
130        - make
131        - make runtest
132
133    # code format check
134    - os: linux
135      env:
136        - TEST="clang-format"
137      addons:
138        apt:
139          packages:
140            - clang-format-3.9
141      script:
142        - CLANG_FORMAT=clang-format-3.9 ./format.sh -d
143
144    # big-endian
145    - os: linux
146      sudo: true
147      env:
148        - TEST="big-endian"
149      services:
150        - docker
151      addons:
152        apt:
153          packages:
154            - qemu-user-static
155            - qemu-system-mips
156      before_install:
157        - sudo docker run --volume $(pwd):/src --workdir /src --name mipsX --tty --detach ubuntu:16.04 tail
158        - sudo docker exec --tty mipsX apt-get update
159        - sudo docker exec --tty mipsX apt-get install build-essential -y
160        - sudo docker exec --tty mipsX apt-get install gcc-mips-linux-gnu -y
161      script:
162        - sudo docker exec --tty mipsX bash -c 'EXTRA_CFLAGS=-static CC=mips-linux-gnu-gcc ./configure --host=mips-linux-gnu'
163        - sudo docker exec --tty mipsX make
164        - sudo docker kill mipsX
165        - file test/srtp_driver
166        - make runtest
167
168    # linux build of fuzzer
169    - os: linux
170      env:
171        - TEST="fuzzer (build only)"
172      addons:
173        apt:
174          packages:
175            - clang
176      script:
177        - CC=clang CXX=clang++ CXXFLAGS="-fsanitize=fuzzer-no-link,address,undefined -g -O3" CFLAGS="-fsanitize=fuzzer-no-link,address,undefined -g -O3" LDFLAGS="-fsanitize=fuzzer-no-link,address,undefined" ./configure
178        - LIBFUZZER="-fsanitize=fuzzer" make srtp-fuzzer
179
180    # coverity scan
181    - os: linux
182      env:
183        - TEST="Coverity Scan"
184      addons:
185        coverity_scan:
186          project:
187            name: "cisco-libSRTP"
188            description: "Build submitted via Travis CI"
189            version: 2
190          notification_email: pabuhler@cisco.com
191          build_command_prepend: "./configure"
192          build_command: "make"
193          branch_pattern: master
194      script:
195        - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
196
197    # windows build
198    - os: windows
199      env:
200        - TEST="windows"
201
202      script:
203        - export PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin":$PATH
204        - mkdir build && cd build
205        - cmake -G "Visual Studio 15 2017" ..
206        - msbuild.exe libsrtp2.sln -p:Configuration=Release
207        - msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release
208        - cd ..
209        - mkdir build_shared && cd build_shared
210        - cmake -G "Visual Studio 15 2017" -DBUILD_SHARED_LIBS=ON ..
211        - msbuild.exe libsrtp2.sln -p:Configuration=Release
212        - msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release
213