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>
This commit is contained in:
Dirk Hohndel 2018-05-19 15:07:44 -07:00
parent 1faa5d7ae1
commit 14d18276e4
5 changed files with 90 additions and 3 deletions

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
#!/bin/bash
# we don't do anything here
exit 0

View file

@ -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

View file

@ -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