name: Unittests using abcvoting installed from pip, daily

on:
  schedule:
    - cron: '0 5 * * *'  # every day at 5:00

jobs:
  unittests:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.10", "3.11", "3.12", "3.13"]
      fail-fast: false

    steps:
      - name: get latest release with tag
        id: latestrelease
        run: |
          echo "releasetag=$(curl -s https://api.github.com/repos/martinlackner/abcvoting/releases/latest | jq '.tag_name' | sed 's/\"//g')" >> $GITHUB_OUTPUT
      - name: confirm release tag
        run: |
          echo ${{ steps.latestrelease.outputs.releasetag }}
      - name: tagcheckout
        uses: actions/checkout@v6
        with:
          ref: ${{ steps.latestrelease.outputs.releasetag }}

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

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install setuptools
          pip install abcvoting
          pip install gmpy2
          pip install ortools
          pip install gurobipy
          pip install pytest
          pip install ortools

      - name: Test with pytest
        run: |
          rm -r abcvoting
          ls
          echo $PYTHONPATH
          export PYTHONPATH=$PYTHONPATH:$PWD
          echo $PYTHONPATH
          python -m pytest -q --tb=short -m "(not gurobipy or not slow) and (not ortools or not slow) and not veryslow" -ra tests/
