eugenetriguba/lirc

View on GitHub
.github/workflows/python-package-ci.yml

Summary

Maintainability
Test Coverage
name: python package ci

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        versions: [
          {python: '3.6', poetry: '1.1.15'},
          {python: '3.7', poetry: '1.2.2'},
          {python: '3.8', poetry: '1.2.2'},
          {python: '3.9', poetry: '1.2.2'},
          {python: '3.10', poetry: '1.2.2'},
          {python: '3.11', poetry: '1.2.2'},
          {python: '3.12.0-alpha.2', poetry: '1.2.2'},
        ]

    steps:
      - uses: actions/checkout@v3

      - name: Set up Poetry
        run: pipx install poetry==${{ matrix.versions.poetry }}

      - name: Set up Python ${{ matrix.versions.python }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.versions.python }}
          cache: 'poetry'

      - name: Install Dependencies
        run: |
          poetry install -v
          poetry run pip install -r requirements-311.txt

      - name: Install system LIRC
        run: sudo apt-get install lirc

      - name: Run tests
        run: poetry run pytest -v tests/ --cov=lirc/ --cov-report=xml

      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          file: ./coverage.xml
          flags: unittests
          name: codecov-umbrella
          fail_ci_if_error: true

      - name: Build Package
        run: poetry build