wip: Test Travis CI for Windows
[quassel.git] / .travis.yml
index defbb62..ef8102e 100644 (file)
@@ -1,29 +1,81 @@
-before_install:
-  - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-  - sudo add-apt-repository -y ppa:kalakris/cmake
-  - sudo apt-add-repository -y ppa:beineri/opt-qt521
-  - sudo apt-get -qq update
+sudo: required
 
-install:
-  - sudo apt-get install -q gcc-4.7 g++-4.7
-  - if [ "$CXX" = "clang" ]; then sudo apt-get install -q clang-3.4; fi
-  - sudo apt-get install -q cmake
-  - sudo apt-get install -q qt52base qt52webkit qt52tools qt52script
-  - if [ "$CXX" = "g++" ]; then export CXX="g++-4.7" CC="gcc-4.7"; fi
+services:
+  - docker
 
-language: cpp
-
-compiler:
-  - gcc 
-  - clang
-
-env: 
-  - QT_VERSION=qt4
-  - QT_VERSION=qt5
-
-script:
-  - mkdir build
-  - cd build
-  - if [ "$QT_VERSION" = "qt4" ]; then cmake ..; fi
-  - if [ "$QT_VERSION" = "qt5" ]; then source /opt/qt52/bin/qt52-env.sh && cmake  -DUSE_QT5=ON ..; fi
-  - make
\ No newline at end of file
+# Define a separate job for Windows
+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:
+        - export CCACHE_MAXSIZE=1G
+        - 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
+        - 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
+        file_glob: true
+        file: $TRAVIS_BUILD_DIR/binaries/*
+        skip_cleanup: true
+        on:
+          tags: true
+          condition: $GH_TOKEN != ''
+      #cache:
+      #  directories:
+      #    - $HOME/AppData/Local/Temp/chocolatey