name: test

on:
  push:
  pull_request:

jobs:

  msys2:
    runs-on: windows-latest
    strategy:
      fail-fast: false
      matrix:
        include: [
          { msystem: MINGW64, arch: x86_64},
          { msystem: MINGW32, arch: i686}
        ]
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: setup-msys2
        uses: msys2/setup-msys2@v2
        with:
          msystem: ${{ matrix.msystem }}
          update: true
          install: >-
            mingw-w64-${{ matrix.arch }}-meson
            mingw-w64-${{ matrix.arch }}-ninja
            mingw-w64-${{ matrix.arch }}-gcc

      - name: Build
        shell: msys2 {0}
        run: |
          # the code assumes msvc style printf atm
          export CFLAGS=-D__USE_MINGW_ANSI_STDIO=0

          meson -Dtests=false _build
          meson compile -C _build

  debian-meson:
    runs-on: ubuntu-latest
    container:
      image: debian:bullseye
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Update system and add dependencies
        run: |
          apt-get update
          apt-get install -y kyua atf-sh build-essential meson

      - name: Build
        run: |
          meson _build
          meson compile -C _build

      - name: Run tests
        run: |
          meson test -v -C _build

  debian-autotools:
    runs-on: ubuntu-latest
    container:
      image: debian:bullseye
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Update system and add dependencies
        run: |
          apt-get update
          apt-get install -y kyua atf-sh build-essential autoconf libtool

      - name: Build
        run: |
          ./autogen.sh
          ./configure
          make -j9

      - name: Run tests
        run: |
          make distcheck

  alpine-meson:
    runs-on: ubuntu-latest
    container:
      image: alpine
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Update system and add dependencies
        run: |
          apk update
          apk add kyua atf build-base meson

      - name: Build
        run: |
          meson _build
          meson compile -C _build

      - name: Run tests
        run: |
          meson test -v -C _build

  alpine-autotools:
    runs-on: ubuntu-latest
    container:
      image: alpine
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Update system and add dependencies
        run: |
          apk update
          apk add kyua atf build-base autoconf automake libtool xz gzip

      - name: Build
        run: |
          ./autogen.sh
          ./configure
          make -j9

      - name: Run tests
        run: |
          make distcheck
