Finally remove some of the Travis related scripts

These haven't been used in many years.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2024-01-04 19:17:59 -08:00
parent fe4c602117
commit 8a2dd8db74
40 changed files with 0 additions and 933 deletions

View file

@ -1,15 +0,0 @@
#!/bin/bash
if [ ! -z $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
# set up the release message to use
source ${TRAVIS_BUILD_DIR}/scripts/release-message.sh
echo "Submitting the folloing apk for continuous build release:"
ls -lh ../subsurface-mobile-build-docker-arm*/build/outputs/apk/debug/*.apk
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
bash ./upload.sh ../subsurface-mobile-build-docker-arm*/build/outputs/apk/debug/*.apk

View file

@ -1,23 +0,0 @@
#!/bin/bash
# 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 --match "v[0-9]*"
# setup build dir on the host, not inside of the container
mkdir -p ../subsurface-mobile-build-docker-arm
mkdir -p ../subsurface-mobile-build-docker-arm64
# this uses a custom built Ubuntu image that includes Qt for Android and
# Android NDK/SDK
# Running sleep to keep the container running during the build
PARENT="$( cd .. && pwd )"
docker run -v $PWD:/android/subsurface \
-v $PARENT/subsurface-mobile-build-docker-arm:/android/subsurface-mobile-build-arm \
-v $PARENT/subsurface-mobile-build-docker-arm64:/android/subsurface-mobile-build-arm64 \
--name=android-builder \
-w /android \
-d subsurface/android-build-container:5.13.10 \
/bin/sleep 60m

View file

@ -1,11 +0,0 @@
#!/bin/bash
set -x
set -e
# by running the build wrapper again we should be able to test newer
# versions of the dependencies even without updating the docker image
# (but of course having the right things in place will save a ton of time)
docker exec -e TRAVIS="$TRAVIS" -t android-builder sh -c "ln -s /android/Qt . ; ln -s /android/android-ndk-r18b . ; ln -s /android/android-sdk-linux . ; subsurface/packaging/android/android-build-wrapper.sh"
ls -l ../subsurface-mobile-build-docker-arm*/build/outputs/apk/debug

View file

@ -1,3 +0,0 @@
#!/bin/bash
echo "Nothing to be done after build"

View file

@ -1,45 +0,0 @@
#!/bin/bash
set -x
set -e
# try to get rid of the insane debug crap
unalias -a
unset -f rvm_debug
unset -f cd
unset -f pushd
unset -f popd
# 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 --match "v[0-9]*"
git submodule init
git submodule update --recursive
pushd libdivecomputer
autoreconf --install
autoreconf --install
popd
# prep things so we can build for iOS
# we have a custom built Qt some gives us just what we need
pushd ${TRAVIS_BUILD_DIR}/..
echo "Get custom Qt build and unpack it"
curl --output ./Qt-5.11.1-ios.tar.xz \
https://f002.backblazeb2.com/file/Subsurface-Travis/Qt-5.11.1-ios.tar.xz
md5 ./Qt-5.11.1-ios.tar.xz
mkdir -p Qt/5.11.1
tar -xJ -C Qt/5.11.1 -f Qt-5.11.1-ios.tar.xz
# our scripts assume that there is a convenience link
cd subsurface/packaging/ios
ln -s ${TRAVIS_BUILD_DIR}/../Qt Qt
popd

View file

@ -1,25 +0,0 @@
#!/bin/bash
set -x
set -e
# this gets executed by Travis when building for iOS
# it gets started from inside the subsurface directory
GITVERSION=$(git describe --match "v[0-9]*" --abbrev=12 | sed -e 's/-g.*$// ; s/^v//')
VERSION=$(echo $GITVERSION | sed -e 's/-/./')
echo "preparing dependencies for Subsurface-mobile ${VERSION} for iOS"
cd packaging/ios
bash -x build.sh -simulator
echo "now it's time to build Subsurface-mobile ${VERSION} for iOS"
cd build-Subsurface-mobile-*for_iOS-Release
sed -i.bak 's/-Wall/-Wno-everything/' Makefile
make -j4
# we don't even attempt to create an ipa on Travis

View file

@ -1,23 +0,0 @@
#!/bin/bash
cd ${TRAVIS_BUILD_DIR}
if [ ! -z $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
# set up the release message to use
source ./scripts/release-message.sh
echo "Submitting the folloing AppImage for continuous build release:"
find . -name "Subsurface*.AppImage"
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
# don't fail if the zsync file is missing
if [ -f Subsurface*.AppImage.zsync ] ; then
bash ./upload.sh Subsurface*.AppImage Subsurface*.AppImage.zsync
else
bash ./upload.sh Subsurface*.AppImage
fi

View file

@ -1,31 +0,0 @@
#!/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
#
set -x
# when running this locally, set TRAVIS_BUILD_DIR to the Subsurface
# directory inside your Windows build tree
TRAVIS_BUILD_DIR=${TRAVIS_BUILD_DIR:-$PWD}
git fetch --unshallow || true # if running locally, unshallow could fail
git pull --tags
git submodule init
git describe --match "v[0-9]*"
# make sure we have libdivecomputer
echo "Get libdivecomputer"
cd ${TRAVIS_BUILD_DIR}
git submodule update --recursive
cd libdivecomputer
autoreconf --install
autoreconf --install
export QT_ROOT=/usr/local/Qt/5.12.4
cd ${TRAVIS_BUILD_DIR}/..
# start the container and keep it running
docker run -v $PWD/subsurface:/subsurface --name=trusty-qt512 -w / -d dirkhh/trusty-qt512:0.7 /bin/sleep 60m

View file

@ -1,45 +0,0 @@
#!/bin/bash
set -x
set -e
# this gets executed by Travis when building an AppImage for Linux
# inside of the trusty-qt512 container
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
# first make sure that no one broke Subsurface-mobile
bash -e -x /subsurface/scripts/build.sh -mobile -quick
# now build our AppImage
bash -e -x /subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit -quick
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_DEBUG_PLUGINS=1
# set up the appdir
mkdir -p appdir/usr/plugins/
# mv googlemaps plugins into place
mv appdir/usr/usr/local/Qt/5.12.4/gcc_64/plugins/* appdir/usr/plugins # the usr/usr is not a typo, that's where it ends up
rm -rf appdir/usr/home/ appdir/usr/include/ appdir/usr/share/man/ # No need to ship developer and man files as part of the AppImage
rm -rf appdir/usr/usr appdir/usr/lib/cmake appdir/usr/lib/pkgconfig
cp /ssllibs/libssl.so appdir/usr/lib/libssl.so.1.1
cp /ssllibs/libcrypto.so appdir/usr/lib/libcrypto.so.1.1
# get the linuxdeployqt tool and run it to collect the libraries
curl -L -O "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod a+x linuxdeployqt*.AppImage
unset QTDIR
unset QT_PLUGIN_PATH
unset LD_LIBRARY_PATH
./linuxdeployqt*.AppImage --appimage-extract-and-run ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
# create the AppImage
export VERSION=$(cd /subsurface/scripts ; ./get-version linux) # linuxdeployqt uses this for naming the file
./linuxdeployqt*.AppImage --appimage-extract-and-run ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2
# copy AppImage to the calling VM
cp Subsurface*.AppImage* /subsurface

View file

@ -1,16 +0,0 @@
#!/bin/bash
set -x
set -e
# this is run to actually trigger the creation of the AppImage
# inside the container
docker exec -t trusty-qt512 bash subsurface/scripts/linux-trusty-qt512/in-container-build.sh 2>&1 | tee build.log
# fail the build if we didn't create Subsurface-mobile
grep "Built target subsurface-mobile" build.log
# fail the build if we didn't create the AppImage
grep "Please consider submitting your AppImage to AppImageHub" build.log

View file

@ -1,13 +0,0 @@
#!/bin/bash
if [ ! -z $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
# set up the release message to use
source ${TRAVIS_BUILD_DIR}/scripts/release-message.sh
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
bash ./upload.sh smtk2ssrf*.AppImage

View file

@ -1,33 +0,0 @@
#!/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 --match "v[0-9]*"
export QT_ROOT=$PWD/Qt/5.9.3
rm -rf Qt
mkdir -p $QT_ROOT
wget -q http://subsurface-divelog.org/downloads/Qt-5.9.3-trusty.tar.xz
tar -xJ -C $QT_ROOT -f Qt-5.9.3-trusty.tar.xz
sudo ln -s $QT_ROOT /usr/local/Qt-5.9.3
# 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
# TestParsePerformance needs this data file to test XML parsing performance
pushd ..
git clone https://github.com/Subsurface/large-anonymous-sample-data
xzcat large-anonymous-sample-data/large-anon.ssrf.xz > subsurface/dives/large-anon.ssrf
popd

View file

@ -1,72 +0,0 @@
#!/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 -create-appdir -build-with-webkit
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_DEBUG_PLUGINS=1
# for debugging: find $QT_ROOT/plugins
# build export-html to make sure that didn't get broken
make -C subsurface/build export-html
env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build check
ls -lR subsurface/build | grep LastTest.log
grep -A1 RESULT\ :\ TestParsePerformance subsurface/build/tests/Testing/Temporary/LastTest.log
# set up the appdir
mkdir -p appdir/usr/plugins/
# mv googlemaps plugins into place
mv appdir/usr/usr/local/Qt*/plugins/* appdir/usr/plugins # the usr/usr is not a typo - that's where it ends up
rm -rf appdir/usr/home/ appdir/usr/include/ appdir/usr/share/man/ # No need to ship developer and man files as part of the AppImage
rm -rf appdir/usr/usr appdir/usr/lib/cmake appdir/usr/lib/pkgconfig
# get the linuxdeployqt tool and run it to collect the libraries
wget -q -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod a+x linuxdeployqt*.AppImage
unset QTDIR
unset QT_PLUGIN_PATH
unset LD_LIBRARY_PATH
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
# create the AppImage
export VERSION=$(cd ${TRAVIS_BUILD_DIR}/scripts ; ./get-version linux) # linuxdeployqt uses this for naming the file
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2
find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
# SmartTrak import tool
bash -e -x ./subsurface/scripts/smtk2ssrf-build.sh
# Create AppImage for smtk2ssrf
mkdir -p ./smtk2ssrf_appdir/usr/share
mkdir -p ./smtk2ssrf_appdir/usr/plugins
mkdir -p ./smtk2ssrf_appdir/usr/bin
mkdir -p ./smtk2ssrf_appdir/usr/lib
cp -f subsurface/icons/subsurface-icon.svg smtk2ssrf_appdir/
cp -f subsurface/smtk-import/smtk2ssrf.desktop smtk2ssrf_appdir/
cp -f install-root/bin/smtk2ssrf smtk2ssrf_appdir/usr/bin/
cp -f install-root/lib/libdivecomputer.so.0 smtk2ssrf_appdir/usr/lib/
cp -f install-root/lib/libgit2* smtk2ssrf_appdir/usr/lib/
cp -rf appdir/usr/plugins/{bearer,iconengines,imageformats,platforms,xcbglintegrations} smtk2ssrf_appdir/usr/plugins
./linuxdeployqt*.AppImage ./smtk2ssrf_appdir/smtk2ssrf.desktop -bundle-non-qt-libs -verbose=2
./linuxdeployqt*.AppImage ./smtk2ssrf_appdir/smtk2ssrf.desktop -appimage -verbose=2
find ./smtk2ssrf_appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq

View file

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

View file

@ -1,27 +0,0 @@
#!/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
# make sure we use a new enough compiler
export CC=gcc-5
export CXX=g++-5
# 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 --match "v[0-9]*"
. /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

@ -1,21 +0,0 @@
#!/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

View file

@ -1,19 +0,0 @@
#!/bin/bash
if [ ! -z $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
# set up the release message to use
source ${TRAVIS_BUILD_DIR}/scripts/release-message.sh
cd ${TRAVIS_BUILD_DIR}/build
zip -r -y Subsurface-$VERSION.app.zip Subsurface.app
echo "Submitting the folloing App for continuous build release:"
ls -lh Subsurface-$VERSION.app.zip
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
bash ./upload.sh Subsurface-$VERSION.app.zip

View file

@ -1,33 +0,0 @@
#!/bin/bash
set -x
# try to get rid of the insane debug crap
unalias -a
unset -f rvm_debug
unset -f cd
unset -f pushd
unset -f popd
# 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 --match "v[0-9]*"
# prep things so we can build for Mac
# we have a custom built Qt some gives us just what we need, including QtWebKit
#
# we should just build and install this into /usr/local/ as well and have
# it all be part of the cache...
pushd ${TRAVIS_BUILD_DIR}
mkdir -p Qt/5.12.3
echo "Get custom Qt build and unpack it"
curl --output Qt-5.12.3-mac.tar.xz \
https://f002.backblazeb2.com/file/Subsurface-Travis/Qt-5.12.3-mac.tar.xz
tar -xJ -C Qt/5.12.3 -f Qt-5.12.3-mac.tar.xz

View file

@ -1,52 +0,0 @@
#!/bin/bash
set -x
set -e
# this gets executed by Travis when building an App for Mac
# it gets started from inside the subsurface directory
export QT_ROOT=${TRAVIS_BUILD_DIR}/Qt/5.12.3/clang_64
export PATH=$QT_ROOT/bin:$PATH # Make sure correct qmake is found on the $PATH
export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
# the global build script expects to be called from the directory ABOVE subsurface
cd ${TRAVIS_BUILD_DIR}/..
DIR=$(pwd)
# first build Subsurface-mobile to ensure this didn't get broken
bash -e -x ./subsurface/scripts/build.sh -mobile
# now Subsurface with WebKit
bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -release
cd ${TRAVIS_BUILD_DIR}/build
# build export-html to make sure that didn't get broken
make export-html
# first build and install Subsurface and then clean up the staging area
LIBRARY_PATH=${DIR}/install-root/lib make -j2 install
# now adjust a few references that macdeployqt appears to miss
# there used to be more - having the for-loop for just one seems overkill, but I
# wouldn't be surprised if there will be more again in the future, so leave it for now
EXECUTABLE=Subsurface.app/Contents/MacOS/Subsurface
for i in libgit2 ; do
OLD=$(otool -L ${EXECUTABLE} | grep $i | cut -d\ -f1 | tr -d "\t")
if [[ ! -z ${OLD} && ! -f Subsurface.app/Contents/Frameworks/$(basename ${OLD}) ]] ; then
# copy the library into the bundle and make sure its id and the reference to it are correct
cp ${DIR}/install-root/lib/$(basename ${OLD}) Subsurface.app/Contents/Frameworks
SONAME=$(basename $OLD)
install_name_tool -change ${OLD} @executable_path/../Frameworks/${SONAME} ${EXECUTABLE}
install_name_tool -id @executable_path/../Frameworks/${SONAME} Subsurface.app/Contents/Frameworks/${SONAME}
fi
done
# next, replace @rpath references with @executable_path references in Subsurface
RPATH=$(otool -L ${EXECUTABLE} | grep rpath | cut -d\ -f1 | tr -d "\t" | cut -b 8- )
for i in ${RPATH}; do
install_name_tool -change @rpath/$i @executable_path/../Frameworks/$i ${EXECUTABLE}
done

View file

@ -1,3 +0,0 @@
#!/bin/bash
echo "Build with Qt 5.5 succeeded"

View file

@ -1,23 +0,0 @@
#!/bin/bash
# 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 --match "v[0-9]*"
# Ugly, but keeps it running during the build
docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d ubuntu:16.04 /bin/sleep 60m
# Subsurface build dependencies
docker exec -t builder apt-get update
docker exec -t builder apt-get install -y wget unzip bzip2 \
git g++ make autoconf automake libtool cmake pkg-config \
libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev \
libusb-1.0-0-dev libssl-dev \
qt5-default qt5-qmake qtchooser qttools5-dev-tools libqt5svg5-dev \
libqt5webkit5-dev libqt5qml5 libqt5quick5 qtdeclarative5-dev \
qtscript5-dev libssh2-1-dev libcurl4-openssl-dev qttools5-dev \
qtconnectivity5-dev qtlocation5-dev qtpositioning5-dev \
libcrypto++-dev libssl-dev qml-module-qtpositioning qml-module-qtlocation \
qml-module-qtquick2

View file

@ -1,9 +0,0 @@
#!/bin/bash
set -x
set -e
docker exec -t builder subsurface/scripts/build.sh -desktop 2>&1 | tee build.log
# fail the build if we didn't create the target binary
grep /workspace/install-root/bin/subsurface build.log

View file

@ -1,3 +0,0 @@
#!/bin/bash
echo "Build with Qt 5.6 succeeded"

View file

@ -1,21 +0,0 @@
#!/bin/bash
# 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 --match "v[0-9]*"
# Ugly, but keeps it running during the build
docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d opensuse:42.3 /bin/sleep 60m
# Subsurface build dependencies
docker exec -t builder zypper refresh
docker exec -t builder zypper --non-interactive install \
git gcc-c++ make autoconf automake libtool cmake libzip-devel \
libssh2-devel libxml2-devel libxslt-devel sqlite3-devel libusb-1_0-devel \
libqt5-linguist-devel libqt5-qttools-devel libQt5WebKitWidgets-devel \
libqt5-qtbase-devel libQt5WebKit5-devel libqt5-qtsvg-devel \
libqt5-qtscript-devel libqt5-qtdeclarative-devel \
libqt5-qtconnectivity-devel libqt5-qtlocation-devel libcurl-devel which \
openssl-devel curl

View file

@ -1,9 +0,0 @@
#!/bin/bash
set -x
set -e
docker exec -t builder subsurface/scripts/build.sh -desktop 2>&1 | tee build.log
# fail the build if we didn't create the target binary
grep /workspace/install-root/bin/subsurface build.log

View file

@ -1,3 +0,0 @@
#!/bin/bash
echo "Build with Qt 5.7 succeeded"

View file

@ -1,22 +0,0 @@
#!/bin/bash
# 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 --match "v[0-9]*"
# Ugly, but keeps it running during the build
docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d fedora:26 /bin/sleep 60m
# Subsurface build dependencies
docker exec -t builder zypper refresh
docker exec -t builder dnf install -y \
git gcc-c++ make autoconf automake libtool cmake bzip2-devel \
libzip-devel libxml2-devel libxslt-devel libsqlite3x-devel \
libudev-devel libusbx-devel libcurl-devel libssh2-devel\
qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtscript-devel \
qt5-qtwebkit-devel qt5-qtsvg-devel qt5-qttools-devel \
qt5-qtconnectivity-devel qt5-qtlocation-devel \
which redhat-rpm-config patch qt5-qtquickcontrols \
qt5-qtquickcontrols2-devel

View file

@ -1,10 +0,0 @@
#!/bin/bash
set -x
set -e
docker exec -t builder subsurface/scripts/build.sh -both 2>&1 | tee build.log
# fail the build if we didn't create the target binary
grep /workspace/install-root/bin/subsurface build.log
grep /workspace/install-root/bin/subsurface-mobile build.log

View file

@ -1,3 +0,0 @@
#!/bin/bash
echo "Build with Qt 5.9 succeeded"

View file

@ -1,20 +0,0 @@
#!/bin/bash
# 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 --match "v[0-9]*"
# Ugly, but keeps it running during the build
docker run -v $PWD:/workspace/subsurface --name=builder -w /workspace -d fedora:27 /bin/sleep 60m
# Subsurface build dependencies
docker exec -t builder zypper refresh
docker exec -t builder dnf install -y \
git gcc-c++ make autoconf automake libtool cmake bzip2-devel \
libzip-devel libxml2-devel libxslt-devel libsqlite3x-devel \
libudev-devel libusbx-devel libcurl-devel libssh2-devel\
qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtscript-devel \
qt5-qtwebkit-devel qt5-qtsvg-devel qt5-qttools-devel \
qt5-qtconnectivity-devel qt5-qtlocation-devel

View file

@ -1,9 +0,0 @@
#!/bin/bash
set -x
set -e
docker exec -t builder subsurface/scripts/build.sh -desktop 2>&1 | tee build.log
# fail the build if we didn't create the target binary
grep /workspace/install-root/bin/subsurface build.log

View file

@ -1,11 +0,0 @@
#!/bin/bash
# create a more useful release message body
export VERSION=$(cd ${TRAVIS_BUILD_DIR}; ./scripts/get-version linux)
T_BUILD_REF="Travis CI build log: https://travis-ci.org/Subsurface-divelog/subsurface/builds/$TRAVIS_BUILD_ID/\n\n"
WIN_BINS="subsurface.exe and subsurface.exe.debug are just the Subsurface executable for this build, the full Windows installer is subsurface-$VERSION.exe.\n\n"
MAC_ZIP="Subsurface-$VERSION.app.zip is a zip archive containing an unsigned app folder; you will have to override Mac security settings in order to be able to run this app.\n\n"
ANDROID_APK="The Android APK is not signed with the release key, most Android phones will force you to uninstall Subsurface-mobile before you can install this APK if you already have an official binary installed on your Android device.\n\n"
MISSING_BINARIES="While the continuous builds are running not all binaries may be posted here - please reload the page in a few minutes if the binary you are looking for is missing.\n"
export UPLOADTOOL_BODY=$T_BUILD_REF$WIN_BINS$MAC_ZIP$ANDROID_APK$MISSING_BINARIES

View file

@ -1,28 +0,0 @@
#!/bin/bash
if [ ! -z $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
cd ${TRAVIS_BUILD_DIR}/../win32/subsurface
echo "Submitting the following Windows files for continuous build release:"
find . -name subsurface\*.exe*
# set up the release message to use
source ${TRAVIS_BUILD_DIR}/scripts/release-message.sh
# for debugging, let's look around a bit
ls -la
# the win32 dir is owned by root, as is all its content (because that's
# the user inside the docker container, I guess. So let's create upload.sh
# in the TRAVIS_BUILD_DIR
cd ${TRAVIS_BUILD_DIR}
# get and run the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
bash ./upload.sh ${TRAVIS_BUILD_DIR}/../win32/subsurface/subsurface*.exe*
# upload smtk2ssrf
bash ./upload.sh ${TRAVIS_BUILD_DIR}/../win32/smtk-import/smtk2ssrf*.exe*

View file

@ -1,50 +0,0 @@
#!/bin/bash
set -x
set -e
# when running this locally, set TRAVIS_BUILD_DIR to the Subsurface
# directory inside your Windows build tree
TRAVIS_BUILD_DIR=${TRAVIS_BUILD_DIR:-$PWD}
git fetch --unshallow || true # if running locally, unshallow could fail
git pull --tags
git submodule init
git describe --match "v[0-9]*"
# make sure we have libdivecomputer
echo "Get libdivecomputer"
cd ${TRAVIS_BUILD_DIR}
git submodule update --recursive
cd libdivecomputer
autoreconf --install
autoreconf --install
# the intended layout as seen inside the container is
# /win/subsurface # sources that we are testing
# /win32 # binaries that are build
# /libzip
# /hidapi
# /googlemaps
#
# the first two are mounted as volumes (this way we get access to the
# build results outside of the container
cd ${TRAVIS_BUILD_DIR}/..
mkdir -p win32
# start the container and keep it running
docker run -v $PWD/win32:/win/win32 -v $PWD/subsurface:/win/subsurface --name=builder -w /win -d dirkhh/mxe-build-container:0.9 /bin/sleep 60m
# for some reason this package was installed but still isn't there?
# hmmmm. The container doesn't seem to have libtool installed
docker exec -t builder apt-get update
docker exec -t builder apt-get install -y ca-certificates libtool
# now set up our other dependencies
# these are either not available in MXE, or a version that's too old
docker exec -t builder bash subsurface/scripts/get-dep-lib.sh single . libzip
docker exec -t builder bash subsurface/scripts/get-dep-lib.sh single . hidapi
docker exec -t builder bash subsurface/scripts/get-dep-lib.sh single . googlemaps
# smtk2ssrf build
docker exec -t builder bash subsurface/scripts/get-dep-lib.sh single . mdbtools

View file

@ -1,21 +0,0 @@
#!/bin/bash
# this gets executed inside the container when building a Windows
# installer on Travis
#
# working directory is assumed to be the directory including all the
# source directories (subsurface, googlemaps, etc)
# in order to be compatible with the assumed layout in the MXE script, we
# need to create the secondary build directory
set -x
set -e
mkdir -p win64
cd win64
# right now the container still has an older version of MXE installed
export MXEBUILDTYPE=x86_64-w64-mingw32.shared
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer
bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i

View file

@ -1,13 +0,0 @@
#!/bin/bash
# this is run to actually trigger the creation of the Windows installer
# inside the container
set -x
set -e
docker exec -t builder bash subsurface/scripts/windows-container/in-container-build.sh 2>&1 | tee build.log
# fail the build if we didn't create the target binary
grep "Built target installer" build.log

View file

@ -1,21 +0,0 @@
#!/bin/bash
if [ -n $TRAVIS_BRANCH ] && [ "$TRAVIS_BRANCH" != "master" ] ; then
export UPLOADTOOL_SUFFIX=$TRAVIS_BRANCH
fi
cd ${TRAVIS_BUILD_DIR}/../win32/subsurface
echo "Submitting the following Windows files for continuous build release:"
find . -name subsurface\*.exe*
# set up the release message to use
source ${TRAVIS_BUILD_DIR}/scripts/release-message.sh
# get the upload script
wget -c https://raw.githubusercontent.com/dirkhh/uploadtool/master/upload.sh
# don't upload the Subsurface build (we get that from the container based
# Windows build, just upload smtk2ssrf
cd ${TRAVIS_BUILD_DIR}/../win32/smtk-import
bash ../subsurface/upload.sh smtk2ssrf*.exe*

View file

@ -1,72 +0,0 @@
#!/bin/bash
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 --match "v[0-9]*"
# grab our own custom MXE environment
pushd ${TRAVIS_BUILD_DIR}/..
echo "Downloading prebuilt MXE environment from Subsurface-divelog.org"
wget -q http://subsurface-divelog.org/downloads/mxe-994ad473.tar.xz
mkdir -p mxe
tar xJ -C mxe -f mxe-994ad473.tar.xz
# hack around path dependency - needs to be fixed
sudo mkdir -p /data/winqt551/
sudo ln -s ${TRAVIS_BUILD_DIR}/../mxe /data/winqt551/mxe-current
ls -l /data/winqt551/mxe-current/usr
sudo ln -s ${TRAVIS_BUILD_DIR}/../mxe /usr/src/mxe
popd
# now set up our other dependencies
CURRENT_LIBZIP="1.2.0"
CURRENT_HIDAPI="hidapi-0.7.0"
CURRENT_LIBUSB="v1.0.21"
CURRENT_LIBGIT2="v0.26.0"
# make sure we have libdivecomputer
echo "Get libdivecomputer"
cd ${TRAVIS_BUILD_DIR}
git submodule update --recursive
cd libdivecomputer
autoreconf --install
autoreconf --install
echo "Get libusb"
cd ${TRAVIS_BUILD_DIR}/..
git clone https://github.com/libusb/libusb
cd libusb
if ! git checkout $CURRENT_LIBUSB ; then
echo "Can't find the right tag in libusb - giving up"
exit 1
fi
echo "Get libgit2"
cd ${TRAVIS_BUILD_DIR}/..
git clone https://github.com/libgit2/libgit2.git
cd libgit2
if ! git checkout $CURRENT_LIBGIT2 ; then
echo "Can't find the right tag in libgit2 - giving up"
exit 1
fi
echo "Get googlemaps"
cd ${TRAVIS_BUILD_DIR}/..
git clone https://github.com/Subsurface/googlemaps.git
echo "Get mdbtools"
cd ${TRAVIS_BUILD_DIR}/..
git clone https://github.com/mdbtools/mdbtools.git
# get prebuilt mxe libraries for mdbtools and glib.
# do not overwrite upstream prebuilt mxe binaries if there is any coincidence.
wget https://www.dropbox.com/s/842skyusb96ii1u/mxe-static-minimal-994ad473.tar.xz
[[ ! -f mxe-static-minimal-994ad473.tar.xz ]] && exit 1
cd mxe
tar -xJf ../mxe-static-minimal-994ad473.tar.xz --skip-old-files
ls -al usr/

View file

@ -1,21 +0,0 @@
#!/bin/bash
set -x
set -e
# this gets executed by Travis when building an installer for Windows
# it gets started from inside the subsurface directory
# with all the other projects downloaded and installed in parallel to
# subsurface; in order to be compatible with the assumed layout, we
# need to create the secondary build directory
cd ${TRAVIS_BUILD_DIR}/..
mkdir win32
ls -l
cd win32
# make sure we use the pre-installed version of MXE
export MXEBUILDTYPE=i686-w64-mingw32.shared
# the MXE build used in this VM doesn't support FTDI
bash -ex ${TRAVIS_BUILD_DIR}/packaging/windows/mxe-based-build.sh -noftdi installer
bash -ex ${TRAVIS_BUILD_DIR}/packaging/windows/smtk2ssrf-mxe-build.sh -i

View file

@ -1,49 +0,0 @@
#!/bin/sh
#
# arguments:
# $1 - target H file
# $2 - fallback version string
# $3 - os name {linux|darwin|win}
#
# doesn't have much error checking!
# should be started from where .git is!
#
if [ "$#" -lt 3 ]; then
echo "ERROR: missing arguments";
exit 1;
fi
# set OS and TARGET
TARGET=$1
TARGET_TEMP=$TARGET.tmp
VERSION=$2
OS=$3
# get the full version: git based or hardcoded from .gitversion or the fallback version string
if gitpwd=`git rev-parse --show-toplevel 2> /dev/null`; then
FULL_VER=`sh "$gitpwd/scripts/get-version" linux`
else
FULL_VER=`cat .gitversion 2> /dev/null || echo $VERSION`
fi
# grab some strings from get-version
CANONICAL_VER=`sh ./scripts/get-version full $FULL_VER`
OS_USABLE_VER=`sh ./scripts/get-version $OS $FULL_VER`
# write to a temp file
echo "#define VERSION_STRING \"$OS_USABLE_VER\"" > $TARGET_TEMP
echo "#define GIT_VERSION_STRING \"$FULL_VER\"" >> $TARGET_TEMP
echo "#define CANONICAL_VERSION_STRING \"$CANONICAL_VER\"" >> $TARGET_TEMP
# if the target file is missing create it
if [ ! -f $TARGET ]; then
CMD=`touch $TARGET`
fi
# if the temp file and the target file differ, replace the target file with the temp file
CMD=`diff -q $TARGET $TARGET_TEMP || cp $TARGET_TEMP $TARGET`
# remove the temp file
CMD=`rm -f $TARGET_TEMP`