pygfx: support Point symbols #543
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| tags: [v*] | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| # run every week (for --pre release tests) | |
| - cron: "0 0 * * 0" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check-manifest: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: pipx run check-manifest | |
| lint: | |
| # Lint on Windows to include wx type stubs. wxPython does not ship pre-built wheels for Linux, | |
| # and building on CI from source fails due to missing GTK+ dev files. | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| python-version: "3.13" | |
| - run: uvx prek run --all-files | |
| test: | |
| name: test ${{ matrix.os }} py${{ matrix.python-version }} ${{ matrix.gfx }} ${{ matrix.canvas }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.10", "3.13"] | |
| gfx: [pygfx, vispy] | |
| canvas: [pyqt6, jupyter, wx] | |
| exclude: | |
| # glfw.GLFWError: (65545) b'NSGL: Failed to find a suitable pixel format' | |
| # (Under the hood GLFW gives vispy the OpenGL context.) | |
| - os: macos-latest | |
| canvas: jupyter | |
| gfx: vispy | |
| # wxpython does not build wheels for ubuntu or macos-latest py3.10 | |
| - os: ubuntu-latest | |
| canvas: wx | |
| - os: macos-latest | |
| canvas: wx | |
| python-version: "3.10" | |
| include: | |
| - python-version: "3.11" | |
| gfx: pygfx | |
| canvas: pyqt6 | |
| os: ubuntu-latest | |
| - python-version: "3.12" | |
| gfx: pygfx | |
| canvas: pyqt6 | |
| os: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: true | |
| - uses: pyvista/setup-headless-display-action@v4 | |
| with: | |
| qt: true | |
| - name: Install llvmpipe and lavapipe for offscreen canvas | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| sudo apt-get update -y -qq | |
| sudo apt install -y libegl1-mesa-dev libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers | |
| - name: Install dependencies | |
| run: uv sync --no-dev --group test --extra ${{ matrix.gfx }} --extra ${{matrix.canvas}} ${{ matrix.python-version >= '3.12' && matrix.gfx == 'pygfx' && '--extra imgui' || '' }} ${{ matrix.canvas == 'pyqt6' && '--group testqt' || '' }} ${{ matrix.canvas == 'jupyter' && '--group testjupyter' || '' }} | |
| - name: Test | |
| shell: bash | |
| run: uv run --no-sync coverage run -p -m pytest -v | |
| - name: Test notebooks | |
| if: matrix.canvas == 'jupyter' | |
| shell: bash | |
| run: uv run --no-sync coverage run -p -m pytest -v --nbval examples/*.ipynb | |
| - name: Upload coverage | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: covreport-${{ matrix.os }}-py${{ matrix.python-version }}-${{ matrix.gfx }}-${{ matrix.canvas }} | |
| path: ./.coverage* | |
| include-hidden-files: true | |
| upload_coverage: | |
| if: always() | |
| needs: [test] | |
| uses: pyapp-kit/workflows/.github/workflows/upload-coverage.yml@v2 | |
| secrets: | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| deploy: | |
| name: Deploy | |
| needs: test | |
| if: success() && startsWith(github.ref, 'refs/tags/') && github.event_name != 'schedule' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| - run: uv build | |
| - uses: pypa/gh-action-pypi-publish@release/v1 | |
| - uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true | |
| files: "./dist/*" |