--- name: build on: push: branches: [master] pull_request: branches: [master] workflow_dispatch: jobs: default: runs-on: ubuntu-latest strategy: matrix: compiler: [gcc, clang] buildtype: [debug, release] container: image: ghcr.io/linux-nvme/debian.python:latest steps: - uses: actions/checkout@v4 - name: build run: | scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }} - uses: actions/upload-artifact@v4 name: upload logs if: failure() with: name: logs files path: | .build-ci/meson-logs/*.txt cross: runs-on: ubuntu-latest strategy: matrix: include: - arch: armhf - arch: s390x - arch: ppc64le steps: - uses: actions/checkout@v4 - name: enable foreign arch uses: dbhi/qus/action@main - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: compile and run unit tests uses: mosteo-actions/docker-run@v2 with: image: ghcr.io/linux-nvme/ubuntu-cross-${{ matrix.arch }}:latest guest-dir: /build host-dir: ${{ github.workspace }} command: | scripts/build.sh -b release -c gcc -t ${{ matrix.arch }} cross params: "--platform linux/amd64" pull-params: "--platform linux/amd64" - uses: actions/upload-artifact@v4 name: upload logs if: failure() with: name: log files path: | .build-ci/meson-logs/*.txt fallback-shared-libraries: name: fallback shared libraries runs-on: ubuntu-latest container: image: ghcr.io/linux-nvme/debian:latest if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v4 - name: build run: | scripts/build.sh -b release -c gcc fallback - uses: actions/upload-artifact@v4 if: failure() with: name: log files path: | .build-ci/meson-logs/*.txt build-muon: name: muon minimal static runs-on: ubuntu-latest container: image: ghcr.io/linux-nvme/debian:latest steps: - uses: actions/checkout@v4 - name: build run: | scripts/build.sh -m muon build-make-static: name: make static runs-on: ubuntu-latest container: image: ghcr.io/linux-nvme/debian:latest steps: - uses: actions/checkout@v4 - name: build run: | make static build-distro: name: build libnvme and nvme-cli separately runs-on: ubuntu-latest container: image: ghcr.io/linux-nvme/debian:latest steps: - uses: actions/checkout@v4 - name: build run: | scripts/build.sh distro