diff options
author | Anton Lundin <glance@acc.umu.se> | 2017-02-05 23:26:52 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-02-05 14:46:08 -0800 |
commit | 3ae9408a4c509a87e17c991afbfccaba082984a7 (patch) | |
tree | d077d071e55a19011184aba381ad950d15147448 | |
parent | c2ea3c2616d6b622ba66ddd358493690dc227f57 (diff) | |
download | subsurface-3ae9408a4c509a87e17c991afbfccaba082984a7.tar.gz |
Add a travis build of subsurface
This runs a subsurface script/build.sh build in travis-ci, and runs the
tests afterwards.
The build runs on the Ubuntu Trusty image, but due to the fact that the
Qt shipped there is to old, it installs a Qt 5.8 from qt.io , and with
some trickery caches it.
Hacked out are things that doesn't build with Qt 5.8, and the rest is
built against WebEngine.
The tests currently fail, and I really don't know why, but its a clear
indication that they aren't run that often. This cam makes sure they are
run at least. The actual testing is just commented out for that reason.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | .travis.yml | 47 | ||||
-rw-r--r-- | qt-installer-noninteractive.qs | 60 |
2 files changed, 107 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..6240ffe33 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,47 @@ +language: c++ + +dist: trusty + +cache: + directories: + - Qt + +addons: + apt: + packages: + - 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 + +before_install: + - if [ ! -e Qt/5.8 ] ; then + rm -rf Qt ; + wget http://download.qt.io/official_releases/qt/5.8/5.8.0/qt-opensource-linux-x64-android-5.8.0.run ; + chmod +x ./qt-opensource-linux-x64-android-5.8.0.run ; + ./qt-opensource-linux-x64-android-5.8.0.run -platform minimal --script qt-installer-noninteractive.qs --no-force-installations ; + fi + +script: + - perl -pi -e 's/BUILDGRANTLEE=1/BUILDGRANTLEE=0/' scripts/build.sh + - perl -pi -e 's/BUILDMARBLE=1/BUILDMARBLE=0/' scripts/build.sh + - perl -pi -e 's/-DNO_PRINTING=OFF/-DNO_PRINTING=ON -DNO_MARBLE=ON -DUSE_WEBENGINE=ON/' scripts/build.sh + - export CMAKE_PREFIX_PATH=$PWD/Qt/5.8/gcc_64/lib/cmake ; + cd .. ; + bash -e ./subsurface/scripts/build.sh +# - cd subsurface/build ; env CTEST_OUTPUT_ON_FAILURE=1 make check +# - cd subsurface/build-mobile ; env CTEST_OUTPUT_ON_FAILURE=1 make check diff --git a/qt-installer-noninteractive.qs b/qt-installer-noninteractive.qs new file mode 100644 index 000000000..b6c6c2a59 --- /dev/null +++ b/qt-installer-noninteractive.qs @@ -0,0 +1,60 @@ +// http://stackoverflow.com/a/34032216/78204 + +function Controller() { + installer.autoRejectMessageBoxes(); + installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes); + installer.installationFinished.connect(function() { + gui.clickButton(buttons.NextButton); + }) +} + +Controller.prototype.WelcomePageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.CredentialsPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.IntroductionPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.TargetDirectoryPageCallback = function() +{ + //gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt"); + gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("InstallerDirPath") + "/Qt"); + //gui.currentPageWidget().TargetDirectoryLineEdit.setText("/scratch/Qt"); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ComponentSelectionPageCallback = function() { + var widget = gui.currentPageWidget(); + + widget.selectAll(); + widget.deselectComponent('qt.58.src'); + + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.LicenseAgreementPageCallback = function() { + gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.StartMenuDirectoryPageCallback = function() { + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ReadyForInstallationPageCallback = function() +{ + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.FinishedPageCallback = function() { +var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm +if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) { + checkBoxForm.launchQtCreatorCheckBox.checked = false; +} + gui.clickButton(buttons.FinishButton); +} |