name: Run tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: 3.9
      - name: Upgrade pip
        run: python -m pip install --upgrade pip setuptools==44.0.0
      - name: Install dependencies
        run: pip install -r requirements/dev.txt
      - name: Static code analysis
        run: make test-lint
      - name: Python unit tests
        run: make test-unit
      - name: Static type checks
        run: make test-types
      - name: Code formatting
        run: make test-format
      - name: Package tests
        run: make test-pythonpackage
