mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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 <github@ike.ch>
105 lines
3.6 KiB
YAML
105 lines
3.6 KiB
YAML
name: Generic workflow for Debian and derivatives
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
container-image:
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ${{ inputs.container-image }}
|
|
|
|
steps:
|
|
- name: get container ready for build
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "update distro and install dependencies"
|
|
|
|
apt-get update
|
|
apt-get dist-upgrade -y
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y -q \
|
|
autoconf automake cmake g++ git libcrypto++-dev libcurl4-gnutls-dev \
|
|
libgit2-dev libqt5qml5 libqt5quick5 libqt5svg5-dev \
|
|
libqt5webkit5-dev libsqlite3-dev libssh2-1-dev libssl-dev libssl-dev \
|
|
libtool libusb-1.0-0-dev libxml2-dev libxslt1-dev libzip-dev make \
|
|
pkg-config qml-module-qtlocation qml-module-qtpositioning \
|
|
qml-module-qtquick2 qt5-qmake qtchooser qtconnectivity5-dev \
|
|
qtdeclarative5-dev qtdeclarative5-private-dev qtlocation5-dev \
|
|
qtpositioning5-dev qtscript5-dev qttools5-dev qttools5-dev-tools \
|
|
qtquickcontrols2-5-dev xvfb libbluetooth-dev libmtp-dev libraw-dev \
|
|
mdbtools-dev
|
|
|
|
git config --global user.email "ci@subsurface-divelog.org"
|
|
git config --global user.name "Subsurface CI"
|
|
git config --global --add safe.directory $GITHUB_WORKSPACE
|
|
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
|
# needs git from the previous step
|
|
- name: checkout sources
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: set the version information
|
|
id: version_number
|
|
uses: ./.github/actions/manage-version
|
|
with:
|
|
no-increment: true
|
|
|
|
- name: build subsurface-mobile
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "building mobile"
|
|
cd ..
|
|
bash -e -x subsurface/scripts/build.sh -mobile
|
|
|
|
- name: test mobile build
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "running tests for mobile"
|
|
|
|
cd build-mobile/tests
|
|
# xvfb-run --auto-servernum ./TestGitStorage -v2
|
|
xvfb-run --auto-servernum make check
|
|
|
|
- name: build subsurface
|
|
run: |
|
|
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 ${BUILD_EXTRA_ARGS}
|
|
|
|
- name: test desktop build
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "running tests for desktop"
|
|
cd build/tests
|
|
# xvfb-run --auto-servernum ./TestGitStorage -v2
|
|
xvfb-run --auto-servernum make check
|
|
|
|
- name: build subsurface-downloader
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "building downloader"
|
|
cd ..
|
|
bash -e -x subsurface/scripts/build.sh -downloader
|
|
|
|
- name: build smtk2ssrf
|
|
run: |
|
|
echo "--------------------------------------------------------------"
|
|
echo "building smtk2ssrf"
|
|
|
|
cd ..
|
|
bash -e -x subsurface/scripts/smtk2ssrf-build.sh -y
|