setup-headless-display-action
ActionsTags
(2)Setup a headless display on Linux and Windows (not needed on MacOS)
- name: Setup headless display
  uses: pyvista/setup-headless-display-action@v3name: Tests that require virtual display
on:
  pull_request:
  workflow_dispatch:
  push:
    tags:
      - "*"
    branches:
      - main
jobs:
  test:
    strategy:
      matrix:
        os: [macos-latest, ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: pyvista/setup-headless-display-action@v3- 
qt(defaultfalse): set totrueto install libraries required for Qt on Linux, e.g.:- uses: pyvista/setup-headless-display-action@v3 with: qt: true
 - 
pyvista(defaulttrue): set tofalseif you don't want to set env vars to use PyVista in offscreen mode. - 
wm(defaultfalse): Installs window manager on Linux. Set toherbstluftwmif you want to install a window manager. - 
mesa3d-release(default24.3.0): set to a specific release to install that version of Mesa3D. This is only applicable for Windows. For example, to install Mesa3D 21.2.5:- uses: pyvista/setup-headless-display-action@v3 with: mesa3d-release: 21.2.5
You can also use
latestto use the latest release version. - 
install-mesa3d-offscreen(defaulttrue): installs the offscreen version of Mesa3D on Windows. This is only applicable for Windows. This will also set theVTK_DEFAULT_OPENGL_WINDOWenvironment variable tovtkOSOpenGLRenderWindowbased on the VTK Runtime settings For example:- uses: pyvista/setup-headless-display-action@v3 with: install-mesa3d-offscreen: true
 
name: Workflow that uses PyVista for plotting
on:
  pull_request:
  workflow_dispatch:
  push:
    tags:
      - "*"
    branches:
      - main
jobs:
  test:
    strategy:
      matrix:
        os: [macos-latest, ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - uses: pyvista/setup-headless-display-action@v3
      - uses: actions/setup-python@v5
        with:
          python-version: 3.12
      - run: pip install pyvista
      - run: python -c "import pyvista;pyvista.Sphere().plot(screenshot='${{ matrix.os }}-sphere.png')"
      - uses: actions/upload-artifact@v4
        with:
          name: sphere
          path: ${{ matrix.os }}-sphere.pngsetup-headless-display-action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.