# SPDX-FileCopyrightText: 2025 DB Systel GmbH # # SPDX-License-Identifier: Apache-2.0 name: Test suites on: push: branches: - main pull_request: jobs: # Test using the tool via poetry on different OSes and python versions test-os-python-matrix: runs-on: ${{ matrix.os }} strategy: max-parallel: 10 # do not abort the whole test job if one combination in the matrix fails fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13"] os: [ubuntu-22.04] include: - python-version: "3.10" os: macos-latest - python-version: "3.10" os: windows-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/poetrybuild with: python: ${{ matrix.python-version }} poetry_args: --only main - name: Execute home-stream run: poetry run home-stream --help # Test building the package and installing it via pip3 test-build-install: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Install poetry run: pipx install poetry - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.10" cache: "poetry" - name: Build package run: poetry build - name: Install package run: pip3 install dist/home_stream-*.tar.gz - name: Run package run: home-stream --help # Formatting pylint: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/poetrybuild - name: Lint with pylint run: poetry run pylint --disable=fixme home_stream/ formatting: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/poetrybuild - name: Test formatting with isort and black run: | poetry run isort --check home_stream/ poetry run black --check . mypy: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/poetrybuild - name: Test typing with mypy run: poetry run mypy # REUSE reuse: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check REUSE Compliance uses: fsfe/reuse-action@v5