feat: add support for Python 3.12 #297
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: aioslsk library | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
linting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
- uses: snok/install-poetry@v1 | |
- name: Install dependencies | |
run: | | |
poetry install --no-interaction | |
- name: Run flake8 | |
run: | | |
poetry run flake8 src/aioslsk/ | |
tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
exclude: | |
- os: macos-latest | |
python-version: "3.9" | |
- os: macos-latest | |
python-version: "3.10" | |
- os: macos-latest | |
python-version: "3.11" | |
- os: windows-latest | |
python-version: "3.9" | |
- os: windows-latest | |
python-version: "3.10" | |
- os: windows-latest | |
python-version: "3.11" | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry Action | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: Load cached venv | |
id: cached-pip-wheels | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache | |
key: venv-${{ runner.os }}-${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
poetry install --no-interaction | |
- name: Test with pytest | |
run: | | |
poetry run pytest --junitxml=test-reports/report-${{ matrix.os }}-${{ matrix.python-version }}.xml -o junit_suite_name=suite-${{ matrix.os }}-${{ matrix.python-version }} | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: report-${{ matrix.os }}-${{ matrix.python-version }} | |
path: test-reports/report-${{ matrix.os }}-${{ matrix.python-version }}.xml | |
publish-test-results: | |
needs: tests | |
if: always() | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
checks: write | |
issues: read | |
pull-requests: write | |
steps: | |
- name: Download Test Result Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: test-reports | |
- name: Publish Test Results | |
uses: EnricoMi/publish-unit-test-result-action/composite@v2 | |
with: | |
report_individual_runs: true | |
files: "test-reports/**/*.xml" | |
- name: Display structure of downloaded files | |
run: ls -R |