Fantastic work Anton. This is a great step forward :) Henrik
On Sun, Feb 5, 2017 at 11:26 PM, Anton Lundin <[email protected]> wrote: > 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 <[email protected]> > --- > .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 > [email protected] > http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
