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 <gla...@acc.umu.se> --- .travis.yml | 47 +++++++++++++++++++++++++++++++++ qt-installer-noninteractive.qs | 60 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 .travis.yml create mode 100644 qt-installer-noninteractive.qs diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..6240ffe --- /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 0000000..b6c6c2a --- /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); +} -- 2.9.3 _______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface