diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f9178cb..ec4df6a 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -2,41 +2,48 @@ name: Linting and testing on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] types: [opened, synchronize, reopened] jobs: build: - runs-on: ubuntu-latest + strategy: + fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install system dependencies - run: | - sudo apt-get update && sudo apt-get install -y libcairo2-dev - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - python -m poetry install --with dev - - name: Test with Coverage and Pytest (Fail if coverage is low) - run: | - poetry run coverage run --source=./maigret -m pytest --reruns 3 --reruns-delay 5 tests - poetry run coverage report --fail-under=60 - poetry run coverage html - - name: Upload coverage report - uses: actions/upload-artifact@v4 - with: - name: htmlcov-${{ strategy.job-index }} - path: htmlcov \ No newline at end of file + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y libcairo2-dev + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install poetry + python -m poetry install --with dev + + - name: Test with Coverage and Pytest (fail if coverage is low) + run: | + poetry run coverage run --source=./maigret -m pytest --reruns 3 --reruns-delay 5 tests + poetry run coverage report --fail-under=60 + poetry run coverage html + + - name: Upload coverage report + uses: actions/upload-artifact@v4 + with: + name: htmlcov-${{ strategy.job-index }} + path: htmlcov \ No newline at end of file