name: Python package

on:
  push:
    branches: [ development, feature/*, bugfix/*, release/* ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.8, 3.9, "3.10", "3.11"]

    steps:
    - uses: actions/checkout@v2
      with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@master
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip poetry
        poetry install --all-extras --no-root

    - name: Test with pytest
      run: |
        poetry run pytest \
          --cov=odin \
          --cov-branch \
          --junit-xml=reports/xunit-result-${{ matrix.python-version }}.xml \
          --cov-report=xml:reports/coverage-${{ matrix.python-version }}.xml \
          tests

    - name: Analyze with SonarCloud
      uses: sonarsource/sonarcloud-github-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

name: Python package

on:
  push:
    branches: [ development, feature/*, bugfix/*, release/* ]

jobs:
  test:
    runs-on: ubuntu-latest
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: true
      matrix:
        python-version: [3.8, 3.9, "3.10", "3.11-dev"]
        experimental: [false]
        include:
          - python-version: "3.11"
            experimental: true

    steps:
    - uses: actions/checkout@v2
      with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@master
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip poetry
        poetry install --all-extras --no-root

    - name: Test with pytest
      run: |
        poetry run pytest \
          --cov=odin \
          --cov-branch \
          --junit-xml=reports/xunit-result-${{ matrix.python-version }}.xml \
          --cov-report=xml:reports/coverage-${{ matrix.python-version }}.xml \
          tests

    - name: Analyze with SonarCloud
      uses: sonarsource/sonarcloud-github-action@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Add 3.11 as an experminental target
Add 3.11 as an experminental target