--- name: build on: push: branches: [master] pull_request: branches: [master] workflow_dispatch: jobs: gcc-debug: name: gcc debug runs-on: ubuntu-latest steps: - name: install dependencies run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: bsfishy/meson-build@v1.0.3 name: build with: action: build setup-options: > --werror --buildtype=debug -Dlibnvme:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt gcc-release: name: gcc release runs-on: ubuntu-latest steps: - name: install dependencies run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: bsfishy/meson-build@v1.0.3 name: build with: action: build setup-options: > --werror --buildtype=release -Dlibnvme:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt clang-release: name: clang release runs-on: ubuntu-latest steps: - name: install dependencies run: sudo apt-get install clang pkg-config libjson-c-dev libhugetlbfs-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: bsfishy/meson-build@v1.0.3 name: build with: action: build setup-options: > --werror --buildtype=release --cross-file=.github/cross/clang.txt -Dlibnvme:werror=false -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt fallback-shared-libraries: name: fallback shared libraries runs-on: ubuntu-latest steps: - name: install dependencies run: sudo apt-get install libpam-dev libcap-ng-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: BSFishy/meson-build@v1.0.3 name: build with: action: build setup-options: > --werror --buildtype=release --wrap-mode=forcefallback --default-library=shared -Dlibnvme:werror=false -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt fallback-static-libraries: name: fallback static libraries runs-on: ubuntu-latest steps: - name: install dependencies run: sudo apt-get install libpam-dev libcap-ng-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: BSFishy/meson-build@v1.0.3 name: build with: action: build setup-options: > --werror --buildtype=release --wrap-mode=forcefallback --default-library=static -Dlibnvme:werror=false -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt cross-armhf: name: cross armhf runs-on: ubuntu-latest steps: - name: set up arm architecture run: | export release=$(lsb_release -c -s) sudo dpkg --add-architecture armhf sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list sudo dd of=/etc/apt/sources.list.d/armhf.list < --werror --buildtype=release --cross-file=.github/cross/ubuntu-armhf.txt -Dlibnvme:python=disabled -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt cross-ppc64le: name: cross ppc64le runs-on: ubuntu-latest steps: - name: set up ppc64le architecture run: | export release=$(lsb_release -c -s) sudo dpkg --add-architecture ppc64el sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list sudo dd of=/etc/apt/sources.list.d/ppc64el.list < --werror --buildtype=release --cross-file=.github/cross/ubuntu-ppc64le.txt -Dlibnvme:werror=false -Dlibnvme:python=disabled -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt cross-s390x: name: cross s390x runs-on: ubuntu-latest steps: - name: set up s390x architecture run: | export release=$(lsb_release -c -s) sudo dpkg --add-architecture s390x sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list sudo dd of=/etc/apt/sources.list.d/s390x.list < --werror --buildtype=release --cross-file=.github/cross/ubuntu-s390x.txt -Dlibnvme:werror=false -Dlibnvme:python=disabled -Dopenssl:werror=false meson-version: 0.61.2 - uses: bsfishy/meson-build@v1.0.3 name: test with: action: test meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: name: log files path: | build/meson-logs/*.txt build-minimal: name: muon minimal runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: build muon and samurai build-tool run: | mkdir build-tools cd build-tools git clone --depth 1 https://git.sr.ht/~lattis/muon cd muon export CC=gcc export ninja=build/samu ./tools/bootstrap_ninja.sh build ./bootstrap.sh build build/muon setup \ -Dlibcurl=disabled \ -Dlibarchive=disabled \ -Ddocs=disabled \ -Dsamurai=disabled \ build build/samu -C build build/muon -C build test - name: fetch libnvme run: | cd subprojects git clone https://github.com/linux-nvme/libnvme.git libnvme_ref=$(sed -n "s/revision = \([0-9a-z]\+\)/\1/p" libnvme.wrap) git -C libnvme checkout $libnvme_ref - name: build run: | export PATH=$(pwd)/build-tools/muon/build:$PATH muon setup \ -Dlibnvme:python=disabled \ -Dlibnvme:json-c=disabled \ -Djson-c=disabled \ build samu -C build - name: test run: | export PATH=$(pwd)/build-tools/muon/build:$PATH muon -C build test