build(deps): bump codecov/codecov-action from 4 to 5 #744
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: Python package | |
on: [push] | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [macos-latest, windows-latest, ubuntu-22.04] | |
python-version: ["3.11", "3.12"] | |
# qt-binding: ["pyside6", "pyqt6"] | |
runs-on: ${{ matrix.platform }} | |
env: | |
DISPLAY: ":99.0" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: tlambert03/setup-qt-libs@v1 | |
# *alternative*: | |
# - uses: pyvista/setup-headless-display-action@v2 | |
# with: | |
# qt: true | |
- name: Linux opengl | |
if: runner.os == 'Linux' | |
run: sudo apt-get install -y libegl1-mesa libpulse0 | |
# - name: start TextToSpeech service | |
# if: runner.os == 'Linux' | |
# run: | | |
# sudo apt-get install speech-dispatcher espeak | |
# speech-dispatcher -d | |
- name: Install uv | |
uses: yezz123/setup-uv@v4 | |
- name: Install dependencies | |
run: | | |
uv sync | |
- name: Test with pytest (PyQt6) | |
# combine test coverage with --cov-append? | |
uses: coactions/setup-xvfb@v1 | |
timeout-minutes: 5 | |
with: | |
run: | | |
uv sync --extra pyqt6 --extra addons | |
uv run pytest | |
- name: Test with pytest (PySide6) | |
uses: coactions/setup-xvfb@v1 | |
# if: runner.os == 'Linux' | |
timeout-minutes: 5 | |
with: | |
run: | | |
uv sync --extra pyside6 --extra addons | |
uv run pytest --doctest-modules --junitxml=junit/test-results.xml --cov=prettyqt --cov-report=xml --cov-report=html | |
- name: Upload coverage to Codecov | |
if: runner.os == 'Windows' && matrix.python-version == '3.12' | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Create documentation | |
# combine test coverage with --cov-append? | |
# if: matrix.python-version == '3.12' && runner.os == 'Linux' | |
uses: coactions/setup-xvfb@v1 | |
timeout-minutes: 10 | |
with: | |
run: | | |
uv sync --extra pyside6 --extra addons | |
uv run mkdocs build | |
deploy: | |
runs-on: windows-latest | |
if: startsWith(github.ref, 'refs/tags/v') | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install packages | |
run: | | |
uv sync --extra pyside6 --extra addons | |
- name: Build documentation | |
uses: coactions/setup-xvfb@v1 | |
timeout-minutes: 10 | |
with: | |
run: | | |
uv run mkdocs build | |
- name: Build package | |
run: | | |
uv build | |
- name: Publish package on PyPI | |
env: | |
UV_PUBLISH_TOKEN: ${{ secrets.UV_PUBLISH_TOKEN }} | |
run: | | |
uv publish | |
# - name: Publish package on GitHub | |
# # if: github.event_name == 'push' | |
# uses: mhausenblas/mkdocs-deploy-gh-pages@master | |
# # Or use mhausenblas/mkdocs-deploy-gh-pages@nomaterial to build without the mkdocs-material theme | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# # CUSTOM_DOMAIN: optionaldomain.com | |
- name: Deploy docs to Github Pages | |
uses: peaceiris/actions-gh-pages@v4 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./site |