name: checks

on:
  workflow_call:
    inputs:
      python-version:
        default: "3.10.4"
        type: string
      poetry-version:
        default: "1.7.1"
        type: string

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Poetry ${{ inputs.poetry-version }}
        uses: abatilo/actions-poetry@v2
        with:
          poetry-version: ${{ inputs.poetry-version }}
      - name: Set up Python ${{ inputs.python-version }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ inputs.python-version }}
          cache: "poetry"
      - name: Install packages
        run: poetry install
      - name: Ruff check
        run: make ruff-check
  mypy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Poetry ${{ inputs.poetry-version }}
        uses: abatilo/actions-poetry@v2
        with:
          poetry-version: ${{ inputs.poetry-version }}
      - name: Set up Python ${{ inputs.python-version }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ inputs.python-version }}
          cache: "poetry"
      - name: Install packages
        run: poetry install
      - name: Setup mypy
        run: yes | poetry run mypy cashu --install-types || true
      - name: Run mypy
        run: poetry run mypy cashu --ignore-missing --check-untyped-defs
  ruff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: chartboost/ruff-action@v1
