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