83b3e0348010f93486d5d0d787fe7d2b8fa61781
[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++
12   - DIST=xenial CXX=clang++
13
14 # Set up cache
15 cache:
16   directories:
17     - $TRAVIS_BUILD_DIR/ccache
18
19 # Prepare
20 before_install:
21   - docker pull quassel/quassel-build-env:$DIST
22   - docker images
23   - mkdir build
24
25 # Build inside the docker image
26 # Source, build and ccache directories are bind-mounted into the container
27 script:
28   - |
29     docker run -t -w /build --rm \
30                -v "$(readlink -f .):/src" \
31                -v "$(readlink -f build):/build" \
32                -v "$(readlink -f ccache):/ccache" \
33                -e CCACHE_DIR=/ccache \
34                -e CXX=$CXX \
35                quassel/quassel-build-env:$DIST \
36                sh -c "cmake -GNinja /src \
37                             -DCMAKE_BUILD_TYPE=RelWithDebInfo \
38                       && ninja install \
39                       && ccache -s \
40                      "
41
42 # Define a separate job for OSX
43 jobs:
44   include:
45     - os: osx
46       language: cpp
47       compiler: clang
48       env:
49       cache:
50         directories:
51           - $HOME/.ccache
52           - $HOME/Library/Caches/Homebrew
53       before_install:
54         - brew update && brew install ccache ninja qca qt5
55       script:
56         - mkdir build && cd build
57         - |
58           PATH=$PATH:/usr/local/opt/qt5/bin
59           DEPLOY=OFF
60           if [[ "$TRAVIS_TAG" != "" && "$GH_TOKEN" != "" ]]; then
61             DEPLOY=ON
62           fi
63           cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DDEPLOY=$DEPLOY
64           ninja install
65         - ccache -s
66       deploy:
67         provider: releases
68         api_key: "${GH_TOKEN}"
69         file_glob: true
70         file:
71           - "QuasselClient_MacOSX-x86_64_*.dmg"
72           - "QuasselCore_MacOSX-x86_64_*.dmg"
73           - "QuasselMono_MacOSX-x86_64_*.dmg"
74         skip_cleanup: true
75         on:
76           tags: true
77           condition: "$GH_TOKEN != ''"