language: cpp cache: ccache matrix: include: - os: linux dist: xenial compiler: gcc env: BUILD_TYPE=Debug IS_NOTIFICATION=1 - os: linux dist: xenial env: DOCKER_FILE=docker/router.Dockerfile services: docker - os: linux dist: xenial env: DOCKER_FILE=docker/alpine-windows.Dockerfile services: docker - os: linux dist: xenial env: DOCKER_FILE=docker/gcc-trunk.Dockerfile services: docker - os: linux dist: xenial compiler: gcc env: BUILD_TYPE=Release - os: linux dist: xenial compiler: clang env: BUILD_TYPE=Debug - os: linux dist: xenial compiler: clang env: BUILD_TYPE=Release - os: osx osx_image: xcode10.2 compiler: gcc env: BUILD_TYPE=Debug - os: osx osx_image: xcode10.2 compiler: gcc env: BUILD_TYPE=Release - os: osx osx_image: xcode10.2 env: BUILD_TYPE=Debug PATH="/usr/local/opt/ccache/libexec:$PATH" - os: osx osx_image: xcode10.2 env: BUILD_TYPE=Release PATH="/usr/local/opt/ccache/libexec:$PATH" - os: osx osx_image: xcode11 env: BUILD_TYPE=Release PATH="/usr/local/opt/ccache/libexec:$PATH" - os: osx osx_image: xcode10.2 env: BUILD_TYPE=Debug ASAN=ON PATH="/usr/local/opt/ccache/libexec:$PATH" CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++ - os: windows env: BUILD_TYPE=Debug - os: windows env: BUILD_TYPE=Release allow_failures: - os: linux dist: xenial env: DOCKER_FILE=docker/alpine-windows.Dockerfile services: docker - os: linux dist: xenial env: DOCKER_FILE=docker/gcc-trunk.Dockerfile services: docker env: global: - NINJA=ninja - STATIC_LINK=OFF addons: apt: packages: - binutils-gold - build-essential - cmake - curl - docker-ce - g++-mingw-w64 - g++-mingw-w64-x86-64 - gcc-mingw-w64-base - git - libcap-dev - libuv1-dev - mingw-w64 mingw-w64-common - ninja-build homebrew: packages: - ccache - cmake - libuv - llvm - ninja - make before_install: - if [ "$TRAVIS_OS_NAME" == "windows" ]; then choco install make ninja; choco upgrade cmake.install; export CC="/c/Program Files/LLVM/bin/clang-cl"; export CXX="/c/Program Files/LLVM/bin/clang-cl"; fi script: - if [ "$TRAVIS_OS_NAME" == "windows" ]; then travis_wait cmd.exe /C '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64 && make test'; elif [[ ! -z $DOCKER_FILE ]]; then travis_wait docker build -f $DOCKER_FILE .; else travis_wait make ${MAKE_TARGET:-test}; fi after_script: - echo $TRAVIS_COMMIT_RANGE - echo $TRAVIS_COMMIT_LOG after_success: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh - if [[ -z $IS_NOTIFICATION ]]; then ./send.sh success $WEBHOOK_URL; fi after_failure: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh - if [[ ! -z $IS_NOTIFICATION ]]; then ./send.sh failure $WEBHOOK_URL; fi notifications: irc: on_success: change on_failure: change channels: - "chat.freenode.net#llarp" nick: lokinet-ci template: - "%{result} | %{repository}#%{build_number} (%{commit} : %{author}) | Build details : %{build_url}"