diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..0994588 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,259 @@ +dist: xenial +sudo: false +language: c + +env: + global: + - secure: "QD09MuUxftXRXtz7ZrB7S0NV/3O9yVhjvIlCSbXN8B87rNSDC8wxMThKMT7iZewnqGk53m+Up19PiMw5ERlHose5tm2cmY1FO/l+c9oAyWZaAL+4XNXryq6zI5F5FX5I61NbfqV3xcnfLTI2QIJF6WqDojNxhPjTbNzQGxIDuqw=" + +matrix: + include: + + # linux build + - os: linux + env: + - TEST="linux (gcc / valgrind)" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-6 + - valgrind + script: + - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure + - make + - make runtest + - make runtest-valgrind + - make distclean + - mkdir build && cd build + - cmake .. + - make + - make test + + # linux build with openssl + - os: linux + env: + - TEST="linux openssl (gcc / valgrind)" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-6 + - valgrind + script: + - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure --enable-openssl + - make + - make runtest + - make runtest-valgrind + - make distclean + - mkdir build && cd build + - cmake -DENABLE_OPENSSL=ON .. + - make + - make test + - cd .. + - mkdir build_shared && cd build_shared + - cmake -DENABLE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON .. + - make + - make test + + # linux build with openssl and clang + - os: linux + env: + - TEST="linux openssl (clang)" + addons: + apt: + packages: + - clang + script: + - CC=clang EXTRA_CFLAGS=-Werror ./configure --enable-openssl + - make + - make runtest + + # linux build with nss + - os: linux + env: + - TEST="linux nss (gcc / valgrind)" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-6 + - valgrind + - libnss3-dev + script: + - CC=gcc-6 EXTRA_CFLAGS=-Werror ./configure --enable-nss + - make + - make runtest + - make runtest-valgrind + + # default osx build + - os: osx + env: + - TEST="osx" + script: + - EXTRA_CFLAGS=-Werror ./configure + - make + - make runtest + - make distclean + - mkdir build && cd build + - cmake .. + - make + - make test + + # osx build with openssl + - os: osx + osx_image: xcode11.2 + env: + - TEST="osx openssl" + before_install: + - brew install openssl@1.1 + script: + - PKG_CONFIG_PATH=$(brew --prefix openssl@1.1)/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-openssl + - make + - make runtest + - make distclean + - mkdir build && cd build + - cmake -DOPENSSL_ROOT_DIR=$(brew --prefix openssl@1.1) -DENABLE_OPENSSL=ON .. + - make + - make test + + # osx build with nss + - os: osx + osx_image: xcode11.2 + env: + - TEST="osx nss" + script: + - PKG_CONFIG_PATH=$(brew --prefix nss)/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-nss + - make + - make runtest + + # code format check + - os: linux + env: + - TEST="clang-format" + addons: + apt: + packages: + - clang-format-3.9 + script: + - CLANG_FORMAT=clang-format-3.9 ./format.sh -d + + # big-endian + - os: linux + sudo: true + env: + - TEST="big-endian" + services: + - docker + addons: + apt: + packages: + - qemu-user-static + - qemu-system-mips + before_install: + - sudo docker run --volume $(pwd):/src --workdir /src --name mipsX --tty --detach ubuntu:16.04 tail + - sudo docker exec --tty mipsX apt-get update + - sudo docker exec --tty mipsX apt-get install build-essential -y + - sudo docker exec --tty mipsX apt-get install gcc-mips-linux-gnu -y + script: + - sudo docker exec --tty mipsX bash -c 'EXTRA_CFLAGS=-static CC=mips-linux-gnu-gcc ./configure --host=mips-linux-gnu' + - sudo docker exec --tty mipsX make + - sudo docker kill mipsX + - file test/srtp_driver + - make runtest + + # linux build of fuzzer + - os: linux + env: + - TEST="fuzzer (build only)" + addons: + apt: + packages: + - clang + script: + - 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 + - LIBFUZZER="-fsanitize=fuzzer" make srtp-fuzzer + + # coverity scan + - os: linux + env: + - TEST="Coverity Scan" + addons: + coverity_scan: + project: + name: "cisco-libSRTP" + description: "Build submitted via Travis CI" + version: 2 + notification_email: pabuhler@cisco.com + build_command_prepend: "./configure" + build_command: "make" + branch_pattern: master + script: + - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- + + # windows build + - os: windows + env: + - TEST="windows" + script: + - export PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin":$PATH + - mkdir build && cd build + - cmake -G "Visual Studio 15 2017" .. + - msbuild.exe libsrtp2.sln -p:Configuration=Release + - msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release + - cd .. + - mkdir build_shared && cd build_shared + - cmake -G "Visual Studio 15 2017" -DBUILD_SHARED_LIBS=ON .. + - msbuild.exe libsrtp2.sln -p:Configuration=Release + - msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release + + # android build + - os: linux + env: + - TEST="android" + script: + - wget -q https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip + - unzip -qq android-ndk-r20b-linux-x86_64.zip + - ANDROID_NDK=`pwd`/android-ndk-r20b + - mkdir build_android + - cd build_android + - cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a .. + - make + - cd .. + - TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64 + AR=$TOOLCHAIN/bin/aarch64-linux-android-ar + AS=$TOOLCHAIN/bin/aarch64-linux-android-as + CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang + CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ + LD=$TOOLCHAIN/bin/aarch64-linux-android-ld + RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib + STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip + ./configure --host aarch64-linux-android + - make + + # ios build with openssl + - os: osx + osx_image: xcode11.2 + env: + - TEST="ios" + script: + - wget -q https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64 .. + - make + - cd .. + - CFLAGS="-arch arm64 --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=8.0 -fembed-bitcode" + LDFLAGS="-arch arm64 --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=8.0 -fembed-bitcode" + AR="$(xcrun --find --sdk iphoneos ar)" + AS="$(xcrun --find --sdk iphoneos as)" + CC="$(xcrun --find --sdk iphoneos clang)" + CXX="$(xcrun --find --sdk iphoneos clang++)" + LD="$(xcrun --find --sdk iphoneos ld)" + RANLIB="$(xcrun --find --sdk iphoneos ranlib)" + STRIP="$(xcrun --find --sdk iphoneos strip)" + ./configure --host arm-apple-darwin + - make + - make shared_library |