summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2018-05-19 15:07:44 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-05-19 21:21:46 -0700
commit14d18276e4c7f9f027b4041d73446d41bae6df67 (patch)
tree7e87070e3fc13fc807b0c3bc5e9334ad1c641d0c
parent1faa5d7ae19babcab3c8f4214292110964d14a6d (diff)
downloadsubsurface-14d18276e4c7f9f027b4041d73446d41bae6df67.tar.gz
Travis: add secondary Linux build target
The goal is to reduce the overall wall clock time of our test builds. This secondary Linux target uses the no-sudo container setup with a Qt 5.10.1 backport and tests the build without BT support as well as the mobile build (but not the full desktop build and doesn't create an AppImage as the pre-built Qt5.10.1 is missing QtWebKit). In exchange we remove the no-bt and mobile build from the existing linux target. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--.travis.yml40
-rw-r--r--scripts/linux/travisbuild.sh4
-rw-r--r--scripts/linux2/after_success.sh5
-rw-r--r--scripts/linux2/before_install.sh23
-rw-r--r--scripts/linux2/travisbuild.sh21
5 files changed, 90 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml
index ec33d9018..20d4110f8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -55,6 +55,46 @@ matrix:
- libglib2.0-dev
- mdbtools-dev
+ - env: SUBSURFACE_PLATFORM='linux2'
+ os: linux
+ dist: trusty
+ language: c++
+ addons:
+ apt:
+ sources:
+ - sourceline: 'ppa:beineri/opt-qt-5.10.1-trusty'
+ key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x10C56D0DE9977759'
+ packages:
+ - qt510base
+ - qt510connectivity
+ - qt510declarative
+ - qt510location
+ - qt510quickcontrols
+ - qt510quickcontrols2
+ - qt510script
+ - qt510translations
+ - qt510svg
+ - qt510tools
+ - git
+ - g++
+ - make
+ - autoconf
+ - automake
+ - libtool
+ - cmake
+ - pkg-config
+ - libxml2-dev
+ - libxslt1-dev
+ - libzip-dev
+ - libsqlite3-dev
+ - libusb-1.0-0-dev
+ - libssl-dev
+ - libssh2-1-dev
+ - libcurl4-openssl-dev
+ # Not a subsurface dependency, but a Qt dependency
+ - mesa-common-dev
+ - libxcb-xinerama0
+
- env: SUBSURFACE_PLATFORM="android"
# Currently hard coded to arm
os: linux
diff --git a/scripts/linux/travisbuild.sh b/scripts/linux/travisbuild.sh
index f4bfaf63f..f87ef7f76 100644
--- a/scripts/linux/travisbuild.sh
+++ b/scripts/linux/travisbuild.sh
@@ -15,9 +15,7 @@ export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
# to create an AppImage
cd ..
-bash -e -x ./subsurface/scripts/build.sh -desktop -no-bt
-rm -rf subsurface/build
-bash -e -x ./subsurface/scripts/build.sh -both -create-appdir -build-with-webkit
+bash -e -x ./subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
diff --git a/scripts/linux2/after_success.sh b/scripts/linux2/after_success.sh
new file mode 100644
index 000000000..2b2638ee7
--- /dev/null
+++ b/scripts/linux2/after_success.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# we don't do anything here
+
+exit 0
diff --git a/scripts/linux2/before_install.sh b/scripts/linux2/before_install.sh
new file mode 100644
index 000000000..3b0ddceb4
--- /dev/null
+++ b/scripts/linux2/before_install.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# prep things so we can build for Linux
+# we have a custom built Qt some gives us just what we need, including QtWebKit
+#
+# this is built from the latest version as of 2017-11-09 in the 5.9 branch and
+# therefore calls itself Qt-5.9.3
+
+set -x
+
+# 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
+
+. /opt/qt510/bin/qt510-env.sh
+export QT_ROOT=/opt/qt510
+
+# TestPreferences uses gui calls, so run a xvfb so it has something to talk to
+export DISPLAY=:99.0
+sh -e /etc/init.d/xvfb start
+
diff --git a/scripts/linux2/travisbuild.sh b/scripts/linux2/travisbuild.sh
new file mode 100644
index 000000000..ecb275868
--- /dev/null
+++ b/scripts/linux2/travisbuild.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+set -x
+set -e
+
+# this gets executed by Travis when building an AppImage for Linux
+# it gets started from inside the subsurface directory
+
+export PATH=$QT_ROOT/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt
+export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
+
+# the global build script expects to be called from the directory ABOVE subsurface
+# build both desktop and mobile - first desktop without BT support and without
+# webkit to make sure that still works, then with all components in order
+# to create an AppImage
+cd ..
+
+bash -e -x ./subsurface/scripts/build.sh -desktop -no-bt
+rm -rf subsurface/build
+bash -e -x ./subsurface/scripts/build.sh -mobile
+