mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
101 lines
3.4 KiB
YAML
101 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
|