name: CI on: # Run action when pushed to master, or for commits in a pull request. push: branches: - master pull_request: branches: - master jobs: tests: name: Add-on testing runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest, windows-latest ] python-version: ["3.8", "3.9", "3.10"] include: # End-of-life Python versions are not available anymore with ubuntu-latest - os: ubuntu-20.04 python-version: "3.5" - os: ubuntu-20.04 python-version: "3.6" - os: ubuntu-20.04 python-version: "3.7" steps: - name: Check out ${{ github.sha }} from repository ${{ github.repository }} uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install -r requirements.txt - name: Run pylint run: make check-pylint - name: Check translations if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9' run: sudo apt-get install gettext && make check-translations - name: Run unit tests env: ADDON_USERNAME: ${{ secrets.ADDON_USERNAME }} ADDON_PASSWORD: ${{ secrets.ADDON_PASSWORD }} PYTHONIOENCODING: utf-8 KODI_HOME: ${{ github.workspace }}/tests/home KODI_INTERACTIVE: 0 KODI_STUB_RPC_RESPONSES: ${{ github.workspace }}/tests/rpc HTTP_PROXY: ${{ secrets.HTTP_PROXY }} run: pytest -x -v --cov=./ --cov-report=xml tests - name: Upload code coverage to CodeCov uses: codecov/codecov-action@v3 continue-on-error: true env: OS: ${{ matrix.os }} PYTHON: ${{ matrix.python-version }} with: flags: unittests env_vars: OS,PYTHON