Skip to content

ETS from source

ETS from source #161

Workflow file for this run

# 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 }}