mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
6fc8310705
Make multiple improvements to the existing workflows: - create a shared custom action to deal with version number tracking and generation; - use this action to add the branch name to the version for pull request builds; - create a shared workflow for all debian-ish builds to avoid re-use by copy / paste; - remove potential security risks by eliminating the use of pre-evaluated expressions (`${{ ... }}`) inside scripts; - update outdated GitHub action versions; - improve the consistency by renaming scripts acording to have a `.sh` extension; - improve naming of generated artefacts for pull requests to include the correct version. @dirkh: Unfortunately this is potentially going to break builds when it is merged, as there is no good way to 'test' a merge build short of merging. We'll just have to deal with the fallout of it in a follow-up pull request. Signed-off-by: Michael Keller <github@ike.ch>
100 lines
3.4 KiB
YAML
100 lines
3.4 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 \
|
|
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"
|
|
|
|
# now build for the desktop version (including WebKit)
|
|
cd ..
|
|
bash -e -x subsurface/scripts/build.sh -desktop -build-with-webkit
|
|
|
|
- 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"
|
|
|
|
# build smtk2ssrf (needs the artefacts generated by the subsurface build
|
|
cd ..
|
|
bash -e -x subsurface/scripts/smtk2ssrf-build.sh -y
|