name: CI

on:
  - push
  - pull_request

jobs:
  coverage:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        python-version: ["3.10", "3.11", "3.12"]

    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
        cache: "pip"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements_dev.txt .
    - name: Tests
      run: pytest --cov=switchbot --cov-report=term-missing --cov-report=xml tests
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v3