ETS from source #163
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
# This workflow installs dependencies from main branch | |
name: ETS from source | |
on: | |
schedule: | |
- cron: '0 0 * * 5' | |
# Make it possible to manually trigger the workflow | |
workflow_dispatch: | |
jobs: | |
test-ets: | |
strategy: | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
toolkit: ['null', 'pyside6'] | |
python-version: ['3.11'] | |
include: | |
# No Wx wheels available for Python 3.11, so test on 3.10 | |
- os: 'windows-latest' | |
toolkit: 'wx' | |
python-version: '3.10' | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Qt dependencies | |
uses: ./.github/actions/install-qt-support | |
if: matrix.toolkit != 'wx' && matrix.toolkit != 'null' | |
- name: Install dependencies for Linux | |
run: | | |
# needed for Celiagg | |
sudo apt-get install libfreetype-dev libharfbuzz-dev | |
# needed for Cairo | |
sudo apt-get install libcairo2-dev | |
if: matrix.os == 'ubuntu-latest' | |
- name: Install dependencies for Mac | |
run: | | |
brew install cairo | |
if: matrix.os == 'macos-latest' | |
- name: Install build dependencies | |
run: | | |
python -m pip install --upgrade pip wheel | |
- name: Install local packages | |
run: pip install ".[cairo,layout,pdf,svg,test,${{ matrix.toolkit }}]" | |
- name: Install source dependencies | |
run: | | |
python -m pip install git+https://github.com/enthought/traits.git | |
python -m pip install git+https://github.com/enthought/pyface.git | |
python -m pip install git+https://github.com/enthought/traitsui.git | |
python -m pip install git+https://github.com/celiagg/celiagg.git | |
- name: Sanity check package version | |
run: python -m pip list | |
- name: Run kiva test suite (Linux) | |
env: | |
PYTHONFAULTHANDLER: 1 | |
run: xvfb-run -a python -m unittest discover -v kiva | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: ${{ runner.temp }} | |
- name: Run kiva test suite (not Linux) | |
env: | |
PYTHONFAULTHANDLER: 1 | |
run: python -m unittest discover -v kiva | |
if: matrix.os != 'ubuntu-latest' | |
working-directory: ${{ runner.temp }} | |
- name: Run enable test suite (Linux) | |
env: | |
PYTHONFAULTHANDLER: 1 | |
# kiva agg requires at least 15-bit color depth. | |
run: xvfb-run -a --server-args="-screen 0 1024x768x24" python -m unittest discover -v enable | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: ${{ runner.temp }} | |
- name: Run enable test suite (not Linux) | |
env: | |
PYTHONFAULTHANDLER: 1 | |
run: python -m unittest discover -v enable | |
if: matrix.os != 'ubuntu-latest' | |
working-directory: ${{ runner.temp }} | |
notify-on-failure: | |
needs: test-ets | |
if: failure() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Notify Slack channel on failure | |
uses: voxmedia/github-action-slack-notify-build@v1 | |
with: | |
channel_id: ${{ secrets.ETS_SLACK_CHANNEL_ID }} | |
status: FAILED | |
color: danger | |
env: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ACTION_SECRET }} | |
notify-on-success: | |
needs: test-ets | |
if: success() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Notify Slack channel on success | |
uses: voxmedia/github-action-slack-notify-build@v1 | |
with: | |
channel_id: ${{ secrets.ETS_BOTS_SLACK_CHANNEL_ID }} | |
status: SUCCESS | |
color: good | |
env: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ACTION_SECRET }} |