services:
- docker
-# Define build matrix for Linux
-os: linux
-dist: bionic
-language: generic # No host compilation
-
-env:
- - DIST=xenial CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
- - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=OFF -DWITH_WEBKIT=OFF"
- - DIST=xenial CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBKIT=ON"
- - DIST=xenial CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBKIT=ON"
- - DIST=bionic CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBKIT=ON"
- - DIST=bionic CXX=clang++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBENGINE=ON"
- - DIST=cosmic CXX=g++ CMAKE_OPTIONS="-DWITH_KDE=ON -DWITH_WEBENGINE=ON"
- - DIST=cosmic 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 CCACHE_MAXSIZE=1G \
- -e CXX=$CXX \
- quassel/quassel-build-env:$DIST \
- sh -c "cmake /src $CMAKE_OPTIONS \
- -GNinja \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DBUILD_TESTING=ON \
- -DFATAL_WARNINGS=ON \
- && ninja install \
- && ccache -s \
- && ctest -VV \
- "
-
-# Define a separate job for OSX
+# Define a separate job for Windows
jobs:
include:
- os: osx
cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DDEPLOY=$DEPLOY
ninja install
- ccache -s
- - ctest -VV
+ - ctest
+ deploy:
+ provider: releases
+ api_key: $GH_TOKEN
+ file_glob: true
+ file: *.dmg
+ skip_cleanup: true
+ on:
+ tags: true
+ condition: $GH_TOKEN != ''
+ - os: windows
+ language: bash
+ before_install:
+ - export TARGET=windows-msvc2017_64-cl
+ #- export GITHUB_TOKEN=$GH_TOKEN
+ - |
+ function python {
+ /C/python38/python.exe "$@"
+ }
+ - |
+ function craft {
+ python /C/CraftMaster/$TARGET/craft/bin/craft.py "$@"
+ }
+ - choco install python2
+ - choco install python3
+ install:
+ - git clone --depth=1 https://invent.kde.org/kde/craftmaster.git /C/CraftMaster/CraftMaster
+ - python /C/CraftMaster/CraftMaster/CraftMaster.py --config $TRAVIS_BUILD_DIR/.craft.ini --variables "BUILD_DIR=$TRAVIS_BUILD_DIR"
+ - craft --add-blueprint-repository https://github.com/quassel/craft-blueprints-quassel.git
+ - craft -p quassel/quassel
+ - craft nsis
+ - craft --install-deps quassel/quassel
+ script:
+ - craft --no-cache --src-dir $TRAVIS_BUILD_DIR quassel/quassel
+ - craft --no-cache --src-dir $TRAVIS_BUILD_DIR --test quassel/quassel
+ after_success:
+ - craft --no-cache --src-dir $TRAVIS_BUILD_DIR --package quassel/quassel
+ - ls $TRAVIS_BUILD_DIR/*
+ - ls $TRAVIS_BUILD_DIR/binaries/*
deploy:
provider: releases
- api_key: "${GH_TOKEN}"
+ api_key: $GH_TOKEN
file_glob: true
- file:
- - "QuasselClient_MacOSX-x86_64_*.dmg"
- - "QuasselCore_MacOSX-x86_64_*.dmg"
- - "QuasselMono_MacOSX-x86_64_*.dmg"
+ file: $TRAVIS_BUILD_DIR/binaries/*
skip_cleanup: true
on:
tags: true
- condition: "$GH_TOKEN != ''"
+ condition: $GH_TOKEN != ''
+ #cache:
+ # directories:
+ # - $HOME/AppData/Local/Temp/chocolatey