From 6b334ac7d972fedfb8ccb1287e5d661e321325cb Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 18 Oct 2019 09:25:14 -0700 Subject: GitHub Actions: improve naming and location of files Just to make things a little more consistent. Signed-off-by: Dirk Hohndel --- .github/workflows/in-container-build.sh | 62 ---------------------- .github/workflows/linux-trusty-5.12.yml | 2 +- .../workflows/scripts/linux-in-container-build.sh | 62 ++++++++++++++++++++++ .../scripts/windows-in-container-build.sh | 30 +++++++++++ .github/workflows/windows-in-container-build.sh | 30 ----------- .github/workflows/windows.yml | 2 +- 6 files changed, 94 insertions(+), 94 deletions(-) delete mode 100644 .github/workflows/in-container-build.sh create mode 100644 .github/workflows/scripts/linux-in-container-build.sh create mode 100644 .github/workflows/scripts/windows-in-container-build.sh delete mode 100644 .github/workflows/windows-in-container-build.sh diff --git a/.github/workflows/in-container-build.sh b/.github/workflows/in-container-build.sh deleted file mode 100644 index 8a2b31b59..000000000 --- a/.github/workflows/in-container-build.sh +++ /dev/null @@ -1,62 +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 -export Grantlee5_ROOT=/__w/subsurface/subsurface/install-root - -# the container currently has things under / that need to be under /__w/subsurface/subsurface instead -cp -a /appdir /__w/subsurface/ -cp -a /install-root /__w/subsurface/ - -echo "--------------------------------------------------------------" -echo "building mobile" - -# first make sure that no one broke Subsurface-mobile -bash -e -x subsurface/scripts/build.sh -mobile -quick - -echo "--------------------------------------------------------------" -echo "building desktop" - -# now build our AppImage -bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit -quick - -echo "--------------------------------------------------------------" -echo "assembling AppImage" - -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 and Grantlee 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 -mv appdir/usr/lib/grantlee/ appdir/usr/plugins/ -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 -# with GitHub Actions the /${GITHUB_WORKSPACE} directory is the current working directory at the start of a step -cp Subsurface*.AppImage* /${GITHUB_WORKSPACE}/Subsurface.AppImage -ls -l /${GITHUB_WORKSPACE}/Subsurface.AppImage diff --git a/.github/workflows/linux-trusty-5.12.yml b/.github/workflows/linux-trusty-5.12.yml index 3b6256c8b..0c20915ae 100644 --- a/.github/workflows/linux-trusty-5.12.yml +++ b/.github/workflows/linux-trusty-5.12.yml @@ -14,7 +14,7 @@ jobs: - name: run build run: | cd .. - bash -x subsurface/.github/workflows/in-container-build.sh + bash -x subsurface/.github/workflows/scripts/linux-in-container-build.sh - name: create CI release uses: ./.github/actions/release diff --git a/.github/workflows/scripts/linux-in-container-build.sh b/.github/workflows/scripts/linux-in-container-build.sh new file mode 100644 index 000000000..8a2b31b59 --- /dev/null +++ b/.github/workflows/scripts/linux-in-container-build.sh @@ -0,0 +1,62 @@ +#!/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 +export Grantlee5_ROOT=/__w/subsurface/subsurface/install-root + +# the container currently has things under / that need to be under /__w/subsurface/subsurface instead +cp -a /appdir /__w/subsurface/ +cp -a /install-root /__w/subsurface/ + +echo "--------------------------------------------------------------" +echo "building mobile" + +# first make sure that no one broke Subsurface-mobile +bash -e -x subsurface/scripts/build.sh -mobile -quick + +echo "--------------------------------------------------------------" +echo "building desktop" + +# now build our AppImage +bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit -quick + +echo "--------------------------------------------------------------" +echo "assembling AppImage" + +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 and Grantlee 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 +mv appdir/usr/lib/grantlee/ appdir/usr/plugins/ +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 +# with GitHub Actions the /${GITHUB_WORKSPACE} directory is the current working directory at the start of a step +cp Subsurface*.AppImage* /${GITHUB_WORKSPACE}/Subsurface.AppImage +ls -l /${GITHUB_WORKSPACE}/Subsurface.AppImage diff --git a/.github/workflows/scripts/windows-in-container-build.sh b/.github/workflows/scripts/windows-in-container-build.sh new file mode 100644 index 000000000..1993f98bc --- /dev/null +++ b/.github/workflows/scripts/windows-in-container-build.sh @@ -0,0 +1,30 @@ +#!/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, grantlee, 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 win32 +cd win32 + +# build Subsurface and then smtk2ssrf +export MXEBUILDTYPE=i686-w64-mingw32.shared +bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer + +# the strange two step move is in order to get predictable names to use +# in the publish step of the GitHub Action +mv subsurface/subsurface.exe* ${GITHUB_WORKSPACE}/ +mv subsurface/subsurface-*.exe ${GITHUB_WORKSPACE}/subsurface-installer.exe + +bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i + +# the strange two step move is in order to get predictable names to use +# in the publish step of the GitHub Action +mv smtk-import/smtk2ssrf.exe ${GITHUB_WORKSPACE}/ +mv smtk-import/smtk2ssrf*.exe ${GITHUB_WORKSPACE}/smtk2ssrf-installer.exe diff --git a/.github/workflows/windows-in-container-build.sh b/.github/workflows/windows-in-container-build.sh deleted file mode 100644 index 1993f98bc..000000000 --- a/.github/workflows/windows-in-container-build.sh +++ /dev/null @@ -1,30 +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, grantlee, 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 win32 -cd win32 - -# build Subsurface and then smtk2ssrf -export MXEBUILDTYPE=i686-w64-mingw32.shared -bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer - -# the strange two step move is in order to get predictable names to use -# in the publish step of the GitHub Action -mv subsurface/subsurface.exe* ${GITHUB_WORKSPACE}/ -mv subsurface/subsurface-*.exe ${GITHUB_WORKSPACE}/subsurface-installer.exe - -bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i - -# the strange two step move is in order to get predictable names to use -# in the publish step of the GitHub Action -mv smtk-import/smtk2ssrf.exe ${GITHUB_WORKSPACE}/ -mv smtk-import/smtk2ssrf*.exe ${GITHUB_WORKSPACE}/smtk2ssrf-installer.exe diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index dd102425f..b94179cc6 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -30,7 +30,7 @@ jobs: - name: run build run: | cd /win - bash -x subsurface/.github/workflows/windows-in-container-build.sh 2>&1 | tee build.log + bash -x subsurface/.github/workflows/scripts/windows-in-container-build.sh 2>&1 | tee build.log grep "Built target installer" build.log - name: create CI release -- cgit v1.2.3-70-g09d2