qa: Replace deprecated qVariantFromValue() by QVariant::fromValue()
[quassel.git] / .travis.yml
1 sudo: required
2
3 services:
4   - docker
5
6 # Define build matrix for Linux
7 os: linux
8 dist: bionic
9 language: generic  # No host compilation
10
11 env:
12   - DIST=xenial CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
13   - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
14   - DIST=xenial CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
15   - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
16   - DIST=bionic CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBKIT=ON"
17   - DIST=bionic CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
18   - DIST=cosmic CXX=g++     CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
19   - DIST=cosmic CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON  -DWITH_WEBENGINE=ON"
20
21 # Set up cache
22 cache:
23   directories:
24     - $TRAVIS_BUILD_DIR/ccache
25
26 # Prepare
27 before_install:
28   - docker pull quassel/quassel-build-env:$DIST
29   - docker images
30   - mkdir build
31
32 # Build inside the docker image
33 # Source, build and ccache directories are bind-mounted into the container
34 script:
35   - |
36     docker run -t -w /build --rm \
37                -v "$(readlink -f .):/src" \
38                -v "$(readlink -f build):/build" \
39                -v "$(readlink -f ccache):/ccache" \
40                -e CCACHE_DIR=/ccache \
41                -e CCACHE_MAXSIZE=1G \
42                -e CXX=$CXX \
43                quassel/quassel-build-env:$DIST \
44                sh -c "cmake /src $CMAKE_OPTIONS \
45                             -GNinja \
46                             -DCMAKE_BUILD_TYPE=RelWithDebInfo \
47                             -DBUILD_TESTING=ON \
48                             -DFATAL_WARNINGS=ON \
49                       && ninja install \
50                       && ccache -s \
51                       && ctest -VV \
52                      "
53
54 # Define a separate job for OSX
55 jobs:
56   include:
57     - os: osx
58       language: cpp
59       compiler: clang
60       env:
61       cache:
62         directories:
63           - $HOME/.ccache
64           - $HOME/Library/Caches/Homebrew
65       before_install:
66         - brew update && brew install ccache ninja qca qt5
67       script:
68         - export CCACHE_MAXSIZE=1G
69         - mkdir build && cd build
70         - |
71           PATH=$PATH:/usr/local/opt/qt5/bin
72           DEPLOY=OFF
73           if [[ "$TRAVIS_TAG" != "" && "$GH_TOKEN" != "" ]]; then
74             DEPLOY=ON
75           fi
76           cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DDEPLOY=$DEPLOY
77           ninja install
78         - ccache -s
79         - ctest -VV
80       deploy:
81         provider: releases
82         api_key: "${GH_TOKEN}"
83         file_glob: true
84         file:
85           - "QuasselClient_MacOSX-x86_64_*.dmg"
86           - "QuasselCore_MacOSX-x86_64_*.dmg"
87           - "QuasselMono_MacOSX-x86_64_*.dmg"
88         skip_cleanup: true
89         on:
90           tags: true
91           condition: "$GH_TOKEN != ''"