[PATCH 2/2] Add a travis build of subsurface

Henrik B A henrik at synth.no
Mon Feb 6 01:06:52 PST 2017


Fantastic work Anton.  This is a great step forward :)

Henrik

On Sun, Feb 5, 2017 at 11:26 PM, Anton Lundin <glance at acc.umu.se> 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 <glance at 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 at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface


More information about the subsurface mailing list