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