name: libnl3-ci

on:
  push:
  pull_request:

jobs:
  clang-format:
    runs-on: ubuntu-latest
    container:
      image: fedora:39
    steps:
      - name: Install packages
        run: |
          sudo dnf install -y \
            clang-tools-extra \
            git

      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Setup git
        run: |
          git config --global --add safe.directory "$PWD"

      - name: Formatting with clang-format
        run: |
          clang-format --version
          ./tools/clang-format.sh -n

  ci:
    strategy:
      matrix:
        include:
          - cc: gcc
          - cc: clang
    runs-on: ubuntu-latest
    steps:

      - name: Install packages
        run: |
          sudo apt-get update
          sudo apt-get -y --no-install-recommends install \
            check \
            valgrind \
            libtool-bin

      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.x

      - name: Lint Python
        if: ${{ matrix.cc == 'gcc' }}
        run: |
          python3 -m pip install flake8
          flake8 . --count --show-source --statistics

      - name: Code formatting with Python black
        if: ${{ matrix.cc == 'gcc' }}
        run: |
          python3 -m pip install black==22.12.0
          black --check .

      - name: Build
        run: |
          set -x

          export CC="${{ matrix.cc }}"
          export CFLAGS="-DNL_MORE_ASSERTS=1000 -O2 -Werror -Wall -Wdeclaration-after-statement -Wvla -std=gnu11 -fexceptions"
          if [ "$CC" = "clang" ]; then
                  CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
                  export LDFLAGS="-Wl,--no-undefined-version,--fatal-warnings"
          else
                  export LDFLAGS="-Wl,--no-undefined-version"
          fi

          ./autogen.sh
          ./configure
          make -j 5
        shell: bash

      - name: Build Unit Tests
        run: make -j 5 check-progs

      - name: Run Unit Tests
        run: |
          set -x
          export NLTST_SEED_RAND=
          for i in `seq 1 5`; do
            tests/check-direct
            tests/check-all
            make -j check
          done

      - name: Run Unit Tests w/Valgrind
        run: |
          set -x
          export NLTST_SEED_RAND=
          CK_FORK=no libtool --mode=execute valgrind --error-exitcode=66 --leak-check=full -s --show-leak-kinds=all ./tests/check-direct
          CK_FORK=no libtool --mode=execute valgrind --error-exitcode=66 --leak-check=full -s --show-leak-kinds=all ./tests/check-all
        shell: bash

      - name: Install packages for Release
        run: |
          python3 -m pip install \
            asciidoc \
            graphviz \
            pygments
          sudo apt-get -y --no-install-recommends install \
            doxygen \
            graphviz \
            mscgen \
            source-highlight

      - name: Build Release
        run: |
          set -x
          git clean -fdx
          export CC="${{ matrix.cc }}"
          NO_GPG_SIGN=1 ./tools/build_release.sh BuildAll

      - name: Build out-of-tree and disable-static
        run: |
          set -x
          git clean -fdx
          export CC="${{ matrix.cc }}"
          export CFLAGS="-Werror -Wall -Wdeclaration-after-statement -Wvla -std=gnu11 -fexceptions"
          if [ "$CC" = "clang" ]; then
                  CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
          fi

          ./autogen.sh
          mkdir build
          cd build
          ../configure --disable-static
          make -j 5
          make -j 5 check-progs
          export NLTST_SEED_RAND=
          make -j 5 check

      - name: Link with mold
        run: |
          sudo apt-get -y --no-install-recommends install \
            mold
          git clean -fdx
          export LDFLAGS="-fuse-ld=mold -Wl,--fatal-warnings"
          ./autogen.sh
          ./configure
          make -j 5 V=1

      - run: echo "🍏 This job's status is ${{ job.status }}."

  ci-alpine:
    runs-on: ubuntu-latest
    container:
      image: alpine:latest
    steps:
      - name: Install packages
        run: |
          apk add \
            autoconf \
            automake \
            bash \
            bison \
            check-dev \
            flex \
            gcc \
            git \
            libtool \
            linux-headers \
            make \
            musl-dev \
            pkgconfig

      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Setup git
        run: |
          git config --global --add safe.directory "$PWD"

      - name: Build
        run: |
          set -x

          export CC="${{ matrix.cc }}"
          export CFLAGS="-DNL_MORE_ASSERTS=1000 -O2 -Werror -Wall -Wdeclaration-after-statement -Wvla -std=gnu11 -fexceptions"
          if [ "$CC" = "clang" ]; then
                  CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-function"
                  export LDFLAGS="-Wl,--no-undefined-version,--fatal-warnings"
          else
                  export LDFLAGS="-Wl,--no-undefined-version"
          fi

          ./autogen.sh
          ./configure
          make -j 5
          make -j 5 check-progs

      - name: Run Unit Tests
        run: |
          set -x
          export NLTST_SEED_RAND=
          for i in `seq 1 5`; do
            tests/check-direct
            # unshare() does not work (EPERM). This test currently cannot pass
            # (odd).
            # tests/check-all
            # make -j check
          done
