From 45c19fd11ebf41c19f51eff067646551ab60e5bf Mon Sep 17 00:00:00 2001
From: Dirk Hohndel <dirk@hohndel.org>
Date: Wed, 11 Jul 2018 12:31:34 -0700
Subject: [PATCH] Travis: add Qt 5.9 testing

This is done via Fedora 27 which seemed the easiest way to get a 5.9 based
distro.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
---
 .travis.yml                    |  7 +++++++
 scripts/qt59/after_success.sh  |  3 +++
 scripts/qt59/before_install.sh | 20 ++++++++++++++++++++
 scripts/qt59/travisbuild.sh    |  9 +++++++++
 4 files changed, 39 insertions(+)
 create mode 100644 scripts/qt59/after_success.sh
 create mode 100644 scripts/qt59/before_install.sh
 create mode 100644 scripts/qt59/travisbuild.sh

diff --git a/.travis.yml b/.travis.yml
index 5f77f0182..b0751246c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -132,6 +132,13 @@ matrix:
       services:
           - docker
 
+    - env: SUBSURFACE_PLATFORM="qt59"
+      os: linux
+      language: c++
+      filter_secrets: false
+      services:
+          - docker
+
 before_install:
     - source ${TRAVIS_BUILD_DIR}/scripts/${SUBSURFACE_PLATFORM}/before_install.sh
 
diff --git a/scripts/qt59/after_success.sh b/scripts/qt59/after_success.sh
new file mode 100644
index 000000000..ce84c003a
--- /dev/null
+++ b/scripts/qt59/after_success.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo "Build with Qt 5.9 succeeded"
diff --git a/scripts/qt59/before_install.sh b/scripts/qt59/before_install.sh
new file mode 100644
index 000000000..83a8ba441
--- /dev/null
+++ b/scripts/qt59/before_install.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Travis only pulls shallow repos. But that messes with git describe.
+# Sorry Travis, fetching the whole thing and the tags as well...
+git fetch --unshallow
+git pull --tags
+git describe
+
+# Ugly, but keeps it running during the build
+docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d fedora:27 /bin/sleep 60m
+
+# Subsurface build dependencies
+docker exec -t builder zypper refresh
+docker exec -t builder dnf install -y \
+	git gcc-c++ make autoconf automake libtool cmake bzip2-devel \
+	libzip-devel libxml2-devel libxslt-devel libsqlite3x-devel \
+	libudev-devel libusbx-devel libcurl-devel libssh2-devel\
+	qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtscript-devel \
+	qt5-qtwebkit-devel qt5-qtsvg-devel qt5-qttools-devel \
+	qt5-qtconnectivity-devel qt5-qtlocation-devel
diff --git a/scripts/qt59/travisbuild.sh b/scripts/qt59/travisbuild.sh
new file mode 100644
index 000000000..060d36d46
--- /dev/null
+++ b/scripts/qt59/travisbuild.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -x
+set -e
+
+docker exec -t builder subsurface/scripts/build.sh -desktop 2>&1 | tee build.log
+# fail the build if we didn't create the target binary
+grep /workspace/install-root/bin/subsurface build.log
+