---
name: build

on:
  push:
    ignore-paths:
      - '**.md'
  pull_request:
    ignore-paths:
      - '**.md'

jobs:
  build:
    runs-on: ubuntu-latest
    continue-on-error: ${{ ! matrix.stable }}
    strategy:
      matrix:
        os:
          - fedora:latest
          - quay.io/centos/centos:stream10
          - quay.io/centos/centos:stream9
          - debian:testing
          - debian:latest
          - ubuntu:rolling
          - ubuntu:latest
        stable: [true]
        include:
          - os: quay.io/fedora/fedora:rawhide
            stable: false
          - os: ubuntu:devel
            stable: false
    steps:
      - uses: actions/checkout@v4

      - name: Show OS information
        run: cat /etc/os-release 2>/dev/null || echo /etc/os-release not available

      - name: Install build dependencies
        run: bash .github/workflows/install-dependencies

      - name: Build clevis
        run: |
          mkdir -p build && cd build
          export ninja=$(command -v ninja)
          [ -z "${ninja}" ] && export ninja=$(command -v ninja-build)
          export CFLAGS="-g -coverage"
          meson .. || cat meson-logs/meson-log.txt >&2
          ${ninja}

      - name: Run tests
        run: |
          cd build
          if ! meson test ; then
              cat meson-logs/testlog.txt >&2
              exit -1
          fi

      - name: Show full test logs
        run: cat build/meson-logs/testlog.txt >&2

    container:
      image: ${{matrix.os}}
      env:
        DISTRO: ${{matrix.os}}
      options: --privileged --device /dev/loop-control

# vim:set ts=2 sw=2 et:
