name: Build and test Python package

on:
  push:
    branches: [ main, stable, oldstable, middleware ]
  pull_request:
    branches: [ main, stable, oldstable, middleware ]

jobs:
  linting:
    name: Linting
    runs-on: 'ubuntu-latest'
    strategy:
        matrix:
          python-version:
            - "3.9"
            - "3.10"
            - "3.11"

    steps:
      - uses: actions/checkout@v6
      - name: Check with black, pylint and pontos.version
        uses: greenbone/actions/lint-python@v3
        with:
          version: ${{ matrix.python-version }}
          packages: ospd_openvas ospd tests
          linter: pylint

  test:
    name: Run all tests
    runs-on: 'ubuntu-latest'
    strategy:
        matrix:
          python-version:
            - "3.9"
            - "3.10"
            - "3.11"

    steps:
      - uses: actions/checkout@v6
      - name: Install poetry and dependencies
        uses: greenbone/actions/poetry@v3
        with:
          version: ${{ matrix.python-version }}
      - name: Run unit tests
        run: poetry run python -m unittest
