name: Unittests

on:
  push:
  pull_request:
  schedule:
    - cron: 3 0 * * *  # Run daily at 0:03 UTC

jobs:
  build-collection-artifact:
    name: Test
    runs-on: ${{ matrix.runner-os }}
    strategy:
      matrix:
        runner-os:
          - ubuntu-22.04
        # ansible-version:
        #   - git+https://github.com/ansible/ansible.git@stable-2.15
        runner-python-version:
          - '3.11'
    steps:

      - name: Check out ${{ github.repository }} on disk
        uses: actions/checkout@v6

      - name: Set up Python ${{ matrix.runner-python-version }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.runner-python-version }}

      - name: Set up pip cache
        uses: actions/cache@v5
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('tests/sanity/requirements.txt') }}-${{ hashFiles('tests/unit/requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-
            ${{ runner.os }}-

      - name: Install requirements for tests
        run: >-
          python -m pip install --user -r test-requirements.txt

      - name: Build a collection tarball
        run: >-
          ~/.local/bin/ansible-galaxy collection build --output-path
          "${GITHUB_WORKSPACE}/.cache/collection-tarballs"

      - name: Install the collection tarball
        run: >-
          ~/.local/bin/ansible-galaxy collection install ${GITHUB_WORKSPACE}/.cache/collection-tarballs/*.tar.gz

      - name: Run collection unit tests
        run: >-
          ~/.local/bin/ansible-test units
          --python "${{ matrix.runner-python-version }}" -vvv
          tests/unit/plugins/modules/
        working-directory: >-
          /home/runner/.ansible/collections/ansible_collections/containers/podman
