Skip to content

Commit

Permalink
Test separing workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
markotoplak committed Jan 9, 2024
1 parent 860a1ad commit 0787673
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 1 deletion.
87 changes: 87 additions & 0 deletions .github/workflows/single.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Test single

on:
workflow_call:
inputs:
os:
required: true
type: string
python-version:
required: true
type: string
tox-env:
required: true
type: string
pyqt:
required: true
type: string
experimental:
required: true
type: boolean

jobs:
build:
runs-on: ${{ inputs.os }}
continue-on-error: ${{ inputs.experimental }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ inputs.python-version }}

- name: Install linux system dependencies
# PyQt6 need special system dependencies on Ubuntu
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 libegl1-mesa libxcb-shape0 libxcb-cursor0 glibc-tools
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox
- name: Test with Tox at Ubuntu
if: inputs.os == 'ubuntu-latest'
run: |
catchsegv xvfb-run -a -s "$XVFBARGS" tox -e ${{ inputs.tox_env }}
env:
# Set pyqt and webengine versions.
PYQT_PYPI_NAME: "${{ startsWith(inputs.pyqt, '5') && 'PyQt5' || 'PyQt6' }}"
PYQT_PYPI_VERSION: ${{ inputs.pyqt }}
WEBENGINE_PYPI_NAME: "${{ startsWith(inputs.pyqt, '5') && 'PyQtWebEngine' || 'PyQt6-WebEngine' }}"
WEBENGINE_PYPI_VERSION: ${{ inputs.pyqt }}

# Need this otherwise unittest installs a warning filter that overrides
# our desire to have OrangeDeprecationWarnings raised
PYTHONWARNINGS: module
# for xvfb at Ubuntu
XVFBARGS: "-screen 0 1280x1024x24"
# on Ubuntu QTWEBENGINE_CHROMIUM_FLAGS needs to be set for webview to work
QTWEBENGINE_CHROMIUM_FLAGS: "--disable-gpu --no-sandbox"

- name: Test with Tox at other systems
if: inputs.os != 'ubuntu-latest'
run: tox -e ${{ inputs.tox_env }}
env:
# Set pyqt and webengine versions.
PYQT_PYPI_NAME: "${{ startsWith(inputs.pyqt, '5') && 'PyQt5' || 'PyQt6' }}"
PYQT_PYPI_VERSION: ${{ inputs.pyqt }}
WEBENGINE_PYPI_NAME: "${{ startsWith(inputs.pyqt, '5') && 'PyQtWebEngine' || 'PyQt6-WebEngine' }}"
WEBENGINE_PYPI_VERSION: ${{ inputs.pyqt }}

# Raise deprecations as errors in our tests only when testing orange-oldest and orange-released.
ORANGE_DEPRECATIONS_ERROR: "${{ inputs.tox_env != 'orange-latest' && '1' || '' }}"
# Need this otherwise unittest installs a warning filter that overrides
# our desire to have OrangeDeprecationWarnings raised
PYTHONWARNINGS: module

- name: Upload code coverage
if: |
inputs.python-version == '3.10' &&
inputs.os == 'ubuntu-latest' &&
inputs.tox_env == 'orange-released'
run: |
pip install codecov
codecov
54 changes: 54 additions & 0 deletions .github/workflows/test-addons.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Test

on:
push

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
python-version: ['3.10']
tox_env: [orange-released]
pyqt: ['5.15.*', '6.6.*']
experimental: [false]
include:
- os: windows-latest
python-version: '3.9'
tox_env: orange-oldest
pyqt: '5.15.*'
experimental: false
- os: macOS-latest
python-version: '3.9'
tox_env: orange-oldest
pyqt: '5.15.*'
experimental: false
- os: ubuntu-latest
python-version: '3.9'
tox_env: orange-oldest
pyqt: '5.15.*'
experimental: false

- os: windows-latest
python-version: '3.11'
tox_env: orange-latest
pyqt: '5.15.*'
experimental: false
- os: macOS-latest
python-version: '3.11'
tox_env: orange-latest
pyqt: '5.15.*'
experimental: false
- os: ubuntu-latest
python-version: '3.11'
tox_env: orange-latest
pyqt: '5.15.*'
experimental: false
uses: ./github/workflows/single.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
tox-env: ${{ matrix.tox-env }}
pyqt: ${{ matrix.pyqt }}
experimental: ${{ matrix.experimental }}
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ on:

jobs:
test:
uses: biolab/orange-ci-cd/.github/workflows/test-addons.yml@master
uses: ./.github/workflows/test-addons.yml

0 comments on commit 0787673

Please sign in to comment.