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