name: qc

on:
  workflow_dispatch:
  push:
    paths:
      - '*.py'
      - '**.py'

jobs:
  analyse:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: install devbox  
        uses: jetpack-io/devbox-install-action@v0.7.0

      - name: install dependencies
        run: devbox run poetry install

      - name: build wheel
        id: build
        run: devbox run poetry build
        
      - name: analyse with mypy
        run: devbox run poetry run mypy .

      - name: check for black formatting compliance
        run: devbox run poetry run black --check .

      - name: analyse isort compliance
        run: devbox run poetry run isort --check *.py **/*.py

  test:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: install devbox  
        uses: jetpack-io/devbox-install-action@v0.7.0

      - name: install dependencies
        run: devbox run poetry install

      - name: run tests
        run: devbox run poetry run python test.py