diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2458489c4..e7570f5db 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: build: @@ -49,6 +50,12 @@ jobs: VERSION: ${{ steps.version_number.outputs.version }} VERSION_4: ${{ steps.version_number.outputs.version_4 }} run: | + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} release" + fi + # this is rather awkward, but it allows us to use the preinstalled # Android and Qt versions with relative paths cd .. @@ -65,7 +72,7 @@ jobs: git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer # get the build number via curl so this works both for a pull request as well as a push export OUTPUT_DIR="$GITHUB_WORKSPACE" - bash -x ./subsurface/packaging/android/qmake-build.sh -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4 + bash -x ./subsurface/packaging/android/qmake-build.sh ${BUILD_EXTRA_ARGS} -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4 - name: delete the keystore if: github.event_name == 'push' diff --git a/.github/workflows/ios.yml.disabled b/.github/workflows/ios.yml.disabled index e84f9b351..a895cd86d 100644 --- a/.github/workflows/ios.yml.disabled +++ b/.github/workflows/ios.yml.disabled @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: build: @@ -45,12 +46,18 @@ jobs: env: VERSION: ${{ steps.version_number.outputs.version }} run: | + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + cd .. git config --global --add safe.directory $GITHUB_WORKSPACE git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer export IOS_QT=$GITHUB_WORKSPACE/qt-ios echo "build for simulator" - bash -x $GITHUB_WORKSPACE/packaging/ios/build.sh -simulator + bash -x $GITHUB_WORKSPACE/packaging/ios/build.sh -simulator ${BUILD_EXTRA_ARGS} # We need this in order to be able to access the file and publish it mv build-Subsurface-mobile-Qt_5_14_1_for_iOS-Release/Release-iphonesimulator/Subsurface-mobile.app $GITHUB_WORKSPACE/Subsurface-mobile-$VERSION.app diff --git a/.github/workflows/linux-debian-generic.yml b/.github/workflows/linux-debian-generic.yml index 741896134..980ee36ed 100644 --- a/.github/workflows/linux-debian-generic.yml +++ b/.github/workflows/linux-debian-generic.yml @@ -71,9 +71,15 @@ jobs: echo "--------------------------------------------------------------" echo "building desktop" + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + # now build for the desktop version (including WebKit) cd .. - bash -e -x subsurface/scripts/build.sh -desktop -build-with-webkit + bash -e -x subsurface/scripts/build.sh -desktop -build-with-webkit ${BUILD_EXTRA_ARGS} - name: test desktop build run: | diff --git a/.github/workflows/linux-debian-trixie-5.15.yml b/.github/workflows/linux-debian-trixie-5.15.yml index 987576f7a..d14254ddd 100644 --- a/.github/workflows/linux-debian-trixie-5.15.yml +++ b/.github/workflows/linux-debian-trixie-5.15.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: do-build-test: diff --git a/.github/workflows/linux-fedora-35-qt6.yml b/.github/workflows/linux-fedora-35-qt6.yml index 8c2780472..2e93f2adb 100644 --- a/.github/workflows/linux-fedora-35-qt6.yml +++ b/.github/workflows/linux-fedora-35-qt6.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: build: @@ -52,12 +53,18 @@ jobs: echo "--------------------------------------------------------------" echo "building desktop" + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + # now build for the desktop version (without WebKit) cd .. git config --global --add safe.directory $GITHUB_WORKSPACE git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer git config --global --get-all safe.directory - bash -e -x subsurface/scripts/build.sh -desktop -build-with-qt6 + bash -e -x subsurface/scripts/build.sh -desktop -build-with-qt6 ${BUILD_EXTRA_ARGS} - name: test desktop build run: | diff --git a/.github/workflows/linux-ubuntu-20.04-qt5-appimage.yml b/.github/workflows/linux-ubuntu-20.04-qt5-appimage.yml index 7fdbb71d0..163b83705 100644 --- a/.github/workflows/linux-ubuntu-20.04-qt5-appimage.yml +++ b/.github/workflows/linux-ubuntu-20.04-qt5-appimage.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: build: @@ -60,9 +61,15 @@ jobs: echo "--------------------------------------------------------------" echo "building desktop" + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + # now build the appimage cd .. - bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit + bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit ${BUILD_EXTRA_ARGS} - name: test desktop build run: | diff --git a/.github/workflows/linux-ubuntu-20.04-qt5.yml b/.github/workflows/linux-ubuntu-20.04-qt5.yml index 6116ce003..6a2efef38 100644 --- a/.github/workflows/linux-ubuntu-20.04-qt5.yml +++ b/.github/workflows/linux-ubuntu-20.04-qt5.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: do-build-test: diff --git a/.github/workflows/linux-ubuntu-22.04-qt5.yml b/.github/workflows/linux-ubuntu-22.04-qt5.yml index c89770038..e737ccba8 100644 --- a/.github/workflows/linux-ubuntu-22.04-qt5.yml +++ b/.github/workflows/linux-ubuntu-22.04-qt5.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: do-build-test: diff --git a/.github/workflows/linux-ubuntu-24.04-qt5.yml b/.github/workflows/linux-ubuntu-24.04-qt5.yml index ddbc27768..a1fead73b 100644 --- a/.github/workflows/linux-ubuntu-24.04-qt5.yml +++ b/.github/workflows/linux-ubuntu-24.04-qt5.yml @@ -11,6 +11,7 @@ on: - scripts/docker/** branches: - master + workflow_dispatch: jobs: do-build-test: diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 632606a56..46f237365 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -44,6 +44,12 @@ jobs: env: CANONICALVERSION: ${{ steps.version_number.outputs.version }} run: | + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + cd ${GITHUB_WORKSPACE}/.. export QT_ROOT=${GITHUB_WORKSPACE}/qt-mac/Qt5.15.15 export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins @@ -51,7 +57,7 @@ jobs: export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake # now setup Subsurface with WebKit and build the dependencies, using the generic build script - bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -release -build-deps -ftdi -prep-only + bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -build-deps -ftdi -prep-only ${BUILD_EXTRA_ARGS} echo "finished initial cmake setup of Subsurface - next build the package" cd subsurface/build diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 06b17dc1d..2416c4c6c 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -47,9 +47,15 @@ jobs: CANONICALVERSION: ${{ steps.version_number.outputs.version }} CANONICALVERSION_4: ${{ steps.version_number.outputs.version_4 }} run: | + BUILD_EXTRA_ARGS="" + if [ "${GITHUB_EVENT_NAME}" = "push" ]; then + echo "Building a release version" + BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release" + fi + export OUTPUT_DIR="$GITHUB_WORKSPACE" cd /win - bash -x subsurface/packaging/windows/in-container-build.sh 2>&1 | tee build.log + bash -x subsurface/packaging/windows/in-container-build.sh ${BUILD_EXTRA_ARGS} 2>&1 | tee build.log grep "Built target installer" build.log - name: publish pull request artifacts diff --git a/packaging/windows/in-container-build.sh b/packaging/windows/in-container-build.sh index c4601f118..1c84c42cb 100755 --- a/packaging/windows/in-container-build.sh +++ b/packaging/windows/in-container-build.sh @@ -13,9 +13,17 @@ set -e mkdir -p win32 cd win32 +BUILD_EXTRA_ARGS="debug" +SMTK2SSRF_EXTRA_ARGS="-b debug" +if [[ "$1" == "-release" ]]; then + BUILD_EXTRA_ARGS="" + SMTK2SSRF_BUILD_EXTRA_ARGS="-b release" + shift +fi + # build Subsurface export MXEBUILDTYPE=x86_64-w64-mingw32.shared -bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer +bash -ex ../subsurface/packaging/windows/mxe-based-build.sh ${BUILD_EXTRA_ARGS} installer # the strange two step move is in order to get predictable names to use # in the publish step of the GitHub Action @@ -27,7 +35,7 @@ mv subsurface/"$fullname" ${OUTPUT_DIR}/"${fullname%.exe}-installer.exe" bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw subsurface -bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i +bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh ${SMTK2SSRF_BUILD_EXTRA_ARGS} -a -i # the strange two step move is in order to get predictable names to use # in the publish step of the GitHub Action diff --git a/packaging/windows/mxe-based-build.sh b/packaging/windows/mxe-based-build.sh index 9da78dec6..0fc52fbd7 100755 --- a/packaging/windows/mxe-based-build.sh +++ b/packaging/windows/mxe-based-build.sh @@ -131,7 +131,6 @@ if [[ "$1" == "debug" ]] ; then RELEASE="Debug" RELEASE_MAIN="Debug" RELEASE_GM="debug" - DLL_SUFFIX="d" shift if [[ -f Release ]] ; then rm -rf * @@ -141,7 +140,6 @@ else RELEASE="Release" RELEASE_MAIN="RelWithDebInfo" RELEASE_GM="release" - DLL_SUFFIX="" if [[ -f Debug ]] ; then rm -rf * fi @@ -281,9 +279,9 @@ done # for some reason we aren't installing Qt5Xml.dll and Qt5Location.dll # I need to figure out why and fix that, but for now just manually copy that as well -EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Xml$DLL_SUFFIX.dll \ -$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location$DLL_SUFFIX.dll \ -$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5QmlWorkerScript$DLL_SUFFIX.dll" +EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Xml.dll \ +$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location.dll \ +$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5QmlWorkerScript.dll" for f in $EXTRA_MANUAL_DEPENDENCIES do diff --git a/packaging/windows/smtk2ssrf-mxe-build.sh b/packaging/windows/smtk2ssrf-mxe-build.sh index 2edf6b45e..491428e32 100755 --- a/packaging/windows/smtk2ssrf-mxe-build.sh +++ b/packaging/windows/smtk2ssrf-mxe-build.sh @@ -124,12 +124,10 @@ else fi case "$RELEASE" in debug|Debug) RELEASE=Debug - DLL_SUFFIX="d" [[ -f Release ]] && rm -rf ./* touch Debug ;; release|Release) RELEASE=Release - DLL_SUFFIX="" [[ -f Debug ]] && rm -rf ./* touch Release ;; @@ -175,7 +173,7 @@ $BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms" # This comes from subsurface's mxe-based-build.sh. I'm not sure it is necessary # but, well, it doesn't hurt. -EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/Qt5Xml$DLL_SUFFIX.dll" +EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/Qt5Xml.dll" STAGING_DIR=$BUILDDIR/smtk-import/staging