name: Meson on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: jobs: meson-build: runs-on: ubuntu-24.04 steps: - name: "CHECKOUT: nvme-stas" uses: actions/checkout@v4 - name: "INSTALL: build packages" run: | sudo apt update sudo apt-get install --yes --quiet meson ninja-build cmake - name: "INSTALL: python packages" run: | sudo apt-get install --yes --quiet python3-pip python3-wheel pylint pyflakes3 python3-systemd python3-pyudev python3-lxml python3-dasbus python3-gi python3-importlib-resources python3-pyfakefs - name: "INSTALL: documentation packages" run: | sudo apt-get install --yes --quiet docbook-xml docbook-xsl xsltproc - name: "INSTALL: remaining debian packages" run: | sudo apt-get install --yes --quiet iproute2 libglib2.0-dev libgirepository1.0-dev libsystemd-dev - name: "INSTALL: pip packages" run: | pip install vermin - name: "INSTALL: libnvme packages (needed to build libnvme)" run: | sudo apt-get install --yes --quiet swig libjson-c-dev - name: "CONFIG: PYTHONPATH" run: | echo "PYTHONPATH=.build:.build/subprojects/libnvme:/usr/lib/python3/dist-packages/" >> $GITHUB_ENV - name: "TEST: nvme-stas" uses: BSFishy/meson-build@v1.0.3 with: action: test directory: .build setup-options: --buildtype=release --sysconfdir=/etc --prefix=/usr -Dman=true -Dhtml=true -Dlibnvme:buildtype=release -Dlibnvme:sysconfdir=/etc -Dlibnvme:prefix=/usr -Dlibnvme:python=enabled -Dlibnvme:libdbus=disabled -Dlibnvme:openssl=disabled -Dlibnvme:json-c=disabled -Dlibnvme:keyutils=disabled options: --print-errorlogs --suite nvme-stas # Preserve meson's log file on failure - uses: actions/upload-artifact@v4 if: failure() with: name: "Linux_Meson_Testlog" path: .build/meson-logs/* - name: "Generate coverage report" run: | sudo apt-get install python3-pytest python3-pytest-cov echo $( pwd ) cp -r .build/staslib/* ./staslib/. pytest --cov=./staslib --cov-report=xml test/test-*.py - uses: codecov/codecov-action@v5 with: fail_ci_if_error: false