name: unit-tests
on: [pull_request, workflow_dispatch]
jobs:
  unit-tests:
    runs-on: ubuntu-22.04
    permissions: {}
    strategy:
      matrix:
        target:
          - check-memory
          - distcheck
          # this runs static code checks, unlike distcheck
          - check
          - pytest-cov
      fail-fast: false
    timeout-minutes: 60
    steps:
      - name: Run unit test
        timeout-minutes: 30
        run: |
          set -eux

          IMAGE="$(curl --fail https://raw.githubusercontent.com/${GITHUB_REPOSITORY}/${GITHUB_SHA}/.cockpit-ci/container)"
          podman run --security-opt=seccomp=unconfined --network=host --rm --interactive "${IMAGE}" sh -eux <<EOF
            export FORCE_COLOR=1
            export TEST_BROWSER=firefox
            export CFLAGS=-O2

            git clone https://github.com/${GITHUB_REPOSITORY} make-checkout-workdir
            cd make-checkout-workdir
            git fetch origin ${GITHUB_SHA}
            git reset --hard ${GITHUB_SHA}

            vendor/checkout
            ./autogen.sh
            make -j$(nproc) '${{ matrix.target }}'
          EOF
