# Workflow for testing branch 'devel'
# - build tests
# - various runtime tests

name: Devel build and tests
run-name: Devel build and tests
on:
  push:
    branches:
      - devel
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: uname -a
      - run: sudo modprobe btrfs
      - run: sudo apt-get install -y pkg-config gcc liblzo2-dev libzstd-dev libblkid-dev uuid-dev zlib1g-dev libext2fs-dev e2fsprogs libudev-dev python3-sphinx libaio-dev liburing-dev attr jq
      - name: Configure
        run: ./autogen.sh && ./configure
      - name: Make
        run: make V=1
      - name: Musl build
        run: sudo docker run kdave/ci-musl-x86_64 ./test-build $GITHUB_REF_NAME --disable-documentation --disable-backtrace --disable-libudev
      - name: Tests cli
        run: sudo make TEST_LOG=dump test-cli
      - name: Tests mkfs
        run: sudo make TEST_LOG=dump test-mkfs
      - name: Tests check
        run: sudo make TEST_LOG=dump test-check
      - name: Tests check (lowmem)
        run: sudo make TEST_LOG=dump test-check-lowmem
      - name: Tests misc
        run: sudo make TEST_LOG=dump test-misc
      - name: Tests fuzz
        run: sudo make TEST_LOG=dump test-fuzz
      - name: Tests json formatter
        run: make test-json
      - name: Tests string-table formatter
        run: make test-string-table
      - name: Libbtrfsutil test
        run: make test-libbtrfsutil
      - name: Libbtrfs build test
        run: make library-test
      - name: Libbtrfs build test (static)
        run: make library-test.static
      - name: Tests ioctl
        run: make ioctl-test
      - name: Tests hash (speed)
        run: make hash-speedtest && ./hash-speedtest 1
      - name: Tests hash (correctness)
        run: make hash-vectest && ./hash-vectest