diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2018-05-19 15:07:44 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-05-19 21:21:46 -0700 |
commit | 14d18276e4c7f9f027b4041d73446d41bae6df67 (patch) | |
tree | 7e87070e3fc13fc807b0c3bc5e9334ad1c641d0c | |
parent | 1faa5d7ae19babcab3c8f4214292110964d14a6d (diff) | |
download | subsurface-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.yml | 40 | ||||
-rw-r--r-- | scripts/linux/travisbuild.sh | 4 | ||||
-rw-r--r-- | scripts/linux2/after_success.sh | 5 | ||||
-rw-r--r-- | scripts/linux2/before_install.sh | 23 | ||||
-rw-r--r-- | scripts/linux2/travisbuild.sh | 21 |
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 + |