name: CI

on:
  - push
  - pull_request

jobs:
  coverage:
    runs-on: ubuntu-latest

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

    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 .
      - uses: pre-commit/action@v3.0.0
      - name: Tests
        run: pytest --cov=switchbot --cov-report=term-missing --cov-report=xml tests
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v5.0.2
        with:
          token: ${{ secrets.CODECOV_TOKEN }} # required