name: Python check on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - home-assistant: "2023.2.0" python-version: "3.10" - home-assistant: "2023.3.0" python-version: "3.10" - home-assistant: "2023.4.0" python-version: "3.10" - home-assistant: "2023.5.0" python-version: "3.10" - home-assistant: "2023.6.0" python-version: "3.10" - home-assistant: "2023.7.0" python-version: "3.10" - home-assistant: "2023.7.0" python-version: "3.11" - home-assistant: "2023.8.0" python-version: "3.11" - home-assistant: "2023.9.0" python-version: "3.11" - home-assistant: "2023.10.0" python-version: "3.11" - home-assistant: "2023.11.0" python-version: "3.11" - home-assistant: "2023.12.0" python-version: "3.11" - home-assistant: "2024.1.0" python-version: "3.11" steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install homeassistant~=${{ matrix.home-assistant }} python -m pip install --upgrade pip python -m pip install -r requirements.txt python -m pip install -r requirements_dev.txt - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics - name: Type check with mypy run: | touch "$(python -c 'import inspect, homeassistant, os; print(os.path.dirname(inspect.getfile(homeassistant)))')"/py.typed mypy -p custom_components.hon # - name: Analysing the code with pylint # run: | # pylint --max-line-length 88 $(git ls-files '*.py') - name: Check black style run: | black . --check