-sudo: required
-
-services:
- - docker
-
-# Define build matrix for Linux
-os: linux
-language: generic # No host compilation
-
-env:
- - DIST=xenial CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=ON"
- - DIST=xenial CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBKIT=ON"
- - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=ON"
- - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBKIT=ON"
- - DIST=bionic CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBENGINE=ON"
- - DIST=bionic CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBENGINE=ON"
-
-# Set up cache
-cache:
- directories:
- - $TRAVIS_BUILD_DIR/ccache
-
-# Prepare
-before_install:
- - docker pull quassel/quassel-build-env:$DIST
- - docker images
- - mkdir build
-
-# Build inside the docker image
-# Source, build and ccache directories are bind-mounted into the container
-script:
- - |
- docker run -t -w /build --rm \
- -v "$(readlink -f .):/src" \
- -v "$(readlink -f build):/build" \
- -v "$(readlink -f ccache):/ccache" \
- -e CCACHE_DIR=/ccache \
- -e CXX=$CXX \
- quassel/quassel-build-env:$DIST \
- sh -c "cmake /src $CMAKE_OPTIONS \
- -GNinja \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DBUILD_TESTING=ON \
- && ninja install \
- && ccache -s \
- && ninja test \
- "
-
-# Define a separate job for OSX
-jobs:
- include:
- - os: osx
- language: cpp
- compiler: clang
- env:
- cache:
- directories:
- - $HOME/.ccache
- - $HOME/Library/Caches/Homebrew
- before_install:
- - brew update && brew install ccache ninja qca qt5
- script:
- - mkdir build && cd build
- - |
- PATH=$PATH:/usr/local/opt/qt5/bin
- DEPLOY=OFF
- if [[ "$TRAVIS_TAG" != "" && "$GH_TOKEN" != "" ]]; then
- DEPLOY=ON
- fi
- cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DDEPLOY=$DEPLOY
- ninja install
- - ccache -s
- - ninja test
- deploy:
- provider: releases
- api_key: "${GH_TOKEN}"
- file_glob: true
- file:
- - "QuasselClient_MacOSX-x86_64_*.dmg"
- - "QuasselCore_MacOSX-x86_64_*.dmg"
- - "QuasselMono_MacOSX-x86_64_*.dmg"
- skip_cleanup: true
- on:
- tags: true
- condition: "$GH_TOKEN != ''"