Skip to content

Commit

Permalink
CICD: Build Release Versions on Push.
Browse files Browse the repository at this point in the history
Change the builds on push (i.e. pull request merges) to build release
versions. This seems to be the correct way to build these, as they are
now distributed as the official builds on
https://subsurface-divelog.org/.
For users wanting to help with debugging, build artifacts on pull
requests are available, and these are debug builds.
Also adding the option to manually trigger builds, so if needed debug
builds can be run on `master`.

Signed-off-by: Michael Keller <[email protected]>
  • Loading branch information
mikeller committed Nov 23, 2024
1 parent 91d8bfe commit 045353d
Show file tree
Hide file tree
Showing 12 changed files with 65 additions and 9 deletions.
9 changes: 8 additions & 1 deletion .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
build:
Expand Down Expand Up @@ -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 ..
Expand All @@ -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 -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4 ${BUILD_EXTRA_ARGS}
- name: delete the keystore
if: github.event_name == 'push'
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/ios.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
build:
Expand Down Expand Up @@ -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

Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/linux-debian-generic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/linux-debian-trixie-5.15.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
do-build-test:
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/linux-fedora-35-qt6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
build:
Expand Down Expand Up @@ -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: |
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/linux-ubuntu-20.04-qt5-appimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
build:
Expand Down Expand Up @@ -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: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/linux-ubuntu-20.04-qt5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
do-build-test:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/linux-ubuntu-22.04-qt5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
do-build-test:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/linux-ubuntu-24.04-qt5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- scripts/docker/**
branches:
- master
workflow_dispatch:

jobs:
do-build-test:
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,20 @@ 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
export PATH=$QT_ROOT/bin:$PATH
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
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 8 additions & 2 deletions packaging/windows/in-container-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,15 @@ set -e
mkdir -p win32
cd win32

BUILD_EXTRA_ARGS="debug"
if [[ "$1" == "-release" ]]; then
BUILD_EXTRA_ARGS=""
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
Expand All @@ -25,7 +31,7 @@ mv subsurface/"$fullname" ${OUTPUT_DIR}/"${fullname%.exe}-installer.exe"

# build Subsurface for smtk2ssrf

bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw subsurface
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw ${BUILD_EXTRA_ARGS} subsurface

bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i

Expand Down

0 comments on commit 045353d

Please sign in to comment.