Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ec36c42
Add Qt dependency action; update test workflows.
corranwebster May 4, 2023
55ecb1b
Don't test with MacOS/EDM/Python 3.8
corranwebster May 4, 2023
cdb18b4
Remove EDM tests for Python 3.6
corranwebster May 4, 2023
912c32e
Do tests using pip-based veritual environments.
corranwebster May 4, 2023
9324530
Bump python version used for PyPI builds and releases.
corranwebster May 4, 2023
8602ba9
Use Enable main at least temporarily
corranwebster May 4, 2023
31c8460
Improve pip install capabilities.
corranwebster May 4, 2023
0ebcb03
Correct quoting
corranwebster May 4, 2023
06d8b81
Fix typo.
corranwebster May 4, 2023
7a51090
Add tests with some different kiva backends.
corranwebster May 4, 2023
5a9032f
Add pandas to env; expand backends.
corranwebster May 4, 2023
8cf2cc2
Split up pip tests by ETS toolkit.
corranwebster May 4, 2023
89b54c0
Use "qt4" for now.
corranwebster May 4, 2023
c1159bd
Don't do celiagg on gui backends for now
corranwebster May 4, 2023
224b9b4
Exclude some failing matrix cases; install pdf requirements.
corranwebster May 4, 2023
5059e32
Clear gc before drawing to ensure similar base state.
corranwebster May 5, 2023
67e03e5
Refine backends being tested.
corranwebster May 5, 2023
565fd75
More adjustements to matrix; don't fail fast so we can see where we are.
corranwebster May 5, 2023
c22990e
Remove quartz tests for now (needs ability to access data in a consis…
corranwebster May 9, 2023
ee79d5a
Merge branch 'main' into enh/update-ci
corranwebster May 9, 2023
2914761
Add tests for PyQt5
corranwebster May 9, 2023
48d5dc0
Remove pyqt5 for now; more linux + pyside6 python versions
corranwebster May 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/actions/install-qt-support/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Install Qt dependencies

This action calls `apt-get` to install packages required for running Qt on Ubuntu.

## Inputs

There are no inputs.

## Outputs

There are no outputs.

## Example usage

```yml

jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install Qt dependencies
uses: ./.github/actions/install-qt-support
```
30 changes: 30 additions & 0 deletions .github/actions/install-qt-support/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: install-qt-support
description: 'Install supporting OS packages for Qt-using code'
runs:
using: composite
steps:
- name: Install Linux packages for Qt
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install qtbase5-dev
sudo apt-get install qtchooser
sudo apt-get install qt5-qmake
sudo apt-get install qtbase5-dev-tools
sudo apt-get install libegl1
sudo apt-get install libxkbcommon-x11-0
sudo apt-get install libxcb-icccm4
sudo apt-get install libxcb-image0
sudo apt-get install libxcb-keysyms1
sudo apt-get install libxcb-randr0
sudo apt-get install libxcb-render-util0
sudo apt-get install libxcb-xinerama0
sudo apt-get install libxcb-shape0
sudo apt-get install libxcb-cursor0
sudo apt-get install pulseaudio
sudo apt-get install libpulse-mainloop-glib0
# Needed to work around https://bugreports.qt.io/browse/PYSIDE-1547
sudo apt-get install libopengl0
# Needed for Qt6 video playback
sudo apt-get install libgstreamer-gl1.0-0
shell: bash
40 changes: 11 additions & 29 deletions .github/workflows/ets-from-source.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,62 +20,44 @@ jobs:
toolkit: ['null', 'pyqt5', 'pyside2']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install Qt dependencies for Linux
run: |
sudo apt-get update
sudo apt-get install qtbase5-dev
sudo apt-get install qtchooser
sudo apt-get install qt5-qmake
sudo apt-get install qtbase5-dev-tools
sudo apt-get install libegl1
sudo apt-get install libxkbcommon-x11-0
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libxcb-icccm4
sudo apt-get install libxcb-image0
sudo apt-get install libxcb-keysyms1
sudo apt-get install libxcb-randr0
sudo apt-get install libxcb-render-util0
sudo apt-get install libxcb-xinerama0
sudo apt-get install libxcb-shape0
shell: bash
if: runner.os == 'Linux'
- uses: actions/checkout@v3
- name: Install Qt dependencies
uses: ./.github/actions/install-qt-support
if: matrix.toolkit != 'wx'
- name: Cache EDM packages
uses: actions/cache@v2
with:
path: ~/.cache
key: ${{ runner.os }}-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
- name: Set up EDM
uses: enthought/setup-edm-action@v1
uses: enthought/setup-edm-action@v2
with:
edm-version: ${{ env.INSTALL_EDM_VERSION }}
- name: Install click to the default EDM environment
run: edm install -y wheel click coverage
- name: Install test environment
run: edm run -- python ci/edmtool.py install --toolkit=${{ matrix.toolkit }} --source
- name: Run tests
uses: GabrielBB/xvfb-action@v1
with:
# kiva agg requires at least 15-bit color depth.
# The --server-args assumes xvfb-run is called, hence Linux only.
run: --server-args="-screen 0 1024x768x24" edm run -- python ci/edmtool.py test --toolkit=${{ matrix.toolkit }}
# kiva agg requires at least 15-bit color depth.
# The --server-args assumes xvfb-run is called, hence Linux only.
run: xvfb-run -a --server-args="-screen 0 1024x768x24" edm run -- python ci/edmtool.py test --toolkit=${{ matrix.toolkit }}

# Test against EDM packages from source on Windows and OSX
test-ets-source:
strategy:
matrix:
os: [macos-latest, windows-latest]
os: [windows-latest]
toolkit: ['null', 'pyqt5', 'pyside2']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Cache EDM packages
uses: actions/cache@v2
with:
path: ~/.cache
key: ${{ runner.os }}-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
- name: Setup EDM
uses: enthought/setup-edm-action@v1
uses: enthought/setup-edm-action@v2
with:
edm-version: ${{ env.INSTALL_EDM_VERSION }}
- name: Install click to the default EDM environment
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-to-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'

- name: Install Python packages needed for wheel build and upload
run: python -m pip install twine
Expand All @@ -54,7 +54,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'

- name: Install Python packages needed for sdist build and upload
run: python -m pip install build twine
Expand Down
80 changes: 0 additions & 80 deletions .github/workflows/test-with-edm-3.8.yml

This file was deleted.

55 changes: 18 additions & 37 deletions .github/workflows/test-with-edm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,85 +2,66 @@
# Note that some packages may not actually be installed from EDM but from
# PyPI, see ci/edmtool.py implementations.

name: Test with EDM
name: Test with EDM on Python 3.8

on: pull_request

env:
INSTALL_EDM_VERSION: 3.2.3
INSTALL_EDM_VERSION: 3.5.0

jobs:

# Test against EDM packages on Linux
test-edm-linux:
test-edm-linux-38:
strategy:
matrix:
toolkit: ['null', 'pyqt5', 'pyside2']
toolkit: ['null', 'pyside6']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Qt dependencies for Linux
run: |
sudo apt-get update
sudo apt-get install qtbase5-dev
sudo apt-get install qtchooser
sudo apt-get install qt5-qmake
sudo apt-get install qtbase5-dev-tools
sudo apt-get install libegl1
sudo apt-get install libxkbcommon-x11-0
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libxcb-icccm4
sudo apt-get install libxcb-image0
sudo apt-get install libxcb-keysyms1
sudo apt-get install libxcb-randr0
sudo apt-get install libxcb-render-util0
sudo apt-get install libxcb-xinerama0
sudo apt-get install libxcb-shape0
- uses: actions/checkout@v3
- name: Install Qt dependencies
uses: ./.github/actions/install-qt-support
if: matrix.toolkit != 'null'
- name: Cache EDM packages
uses: actions/cache@v2
with:
path: ~/.cache
key: ${{ runner.os }}-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
key: ${{ runner.os }}-3.8-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
- name: Setup EDM
uses: enthought/setup-edm-action@v1
uses: enthought/setup-edm-action@v2
with:
edm-version: ${{ env.INSTALL_EDM_VERSION }}
- name: Install click to the default EDM environment
run: edm install -y wheel click coverage
- name: Install test environment
run: edm run -- python ci/edmtool.py install --toolkit=${{ matrix.toolkit }}
run: edm run -- python ci/edmtool.py install --runtime=3.8 --toolkit=${{ matrix.toolkit }}
- name: Flake8
run: edm run -- python ci/edmtool.py flake8 --toolkit=${{ matrix.toolkit }}
run: edm run -- python ci/edmtool.py flake8 --runtime=3.8 --toolkit=${{ matrix.toolkit }}
if: matrix.toolkit == 'null'
- name: Run tests
uses: GabrielBB/xvfb-action@v1
with:
# kiva agg requires at least 15-bit color depth.
# The --server-args assumes xvfb-run is called, hence Linux only.
run: --server-args="-screen 0 1024x768x24" edm run -- python ci/edmtool.py test --toolkit=${{ matrix.toolkit }}
run: xvfb-run -a --server-args="-screen 0 1024x768x24" edm run -- python ci/edmtool.py test --runtime=3.8 --toolkit=${{ matrix.toolkit }}

# Test against EDM packages on Windows and OSX
test-with-edm:
test-with-edm-38:
strategy:
matrix:
os: [macos-latest, windows-latest]
toolkit: ['null', 'pyqt5', 'pyside2']
os: [windows-latest]
toolkit: ['null', 'pyside6']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Cache EDM packages
uses: actions/cache@v2
with:
path: ~/.cache
key: ${{ runner.os }}-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
key: ${{ runner.os }}-3.8-${{ matrix.toolkit }}-${{ hashFiles('ci/edmtool.py') }}
- name: Setup EDM
uses: enthought/setup-edm-action@v1
with:
edm-version: ${{ env.INSTALL_EDM_VERSION }}
- name: Install click to the default EDM environment
run: edm install -y wheel click coverage
- name: Install test environment
run: edm run -- python ci/edmtool.py install --toolkit=${{ matrix.toolkit }}
run: edm run -- python ci/edmtool.py install --runtime=3.8 --toolkit=${{ matrix.toolkit }}
- name: Run tests
run: edm run -- python ci/edmtool.py test --toolkit=${{ matrix.toolkit }}
run: edm run -- python ci/edmtool.py test --runtime=3.8 --toolkit=${{ matrix.toolkit }}
Loading