Repository navigation
Fix empty cross sections, anti-aliasing kernel TypeError and About AttributeError #8
Workflow file for this run
This file contains hidden or 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 will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python | |
| # Inspired from https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html#github-actions | |
| name: Build, install and test with PySide6 | |
| on: | |
| push: | |
| branches: [ "master", "develop", "release" ] | |
| pull_request: | |
| branches: [ "master", "develop", "release" ] | |
| workflow_call: | |
| jobs: | |
| build: | |
| env: | |
| DISPLAY: ':99.0' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| env: | |
| # Pull requests are routed by their target branch, pushes by their own branch | |
| TARGET_BRANCH: ${{ github.base_ref || github.ref_name }} | |
| run: | | |
| sudo apt install libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 x11-utils libegl1 libgl1 libopengl0 libxcb-cursor0 | |
| /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX | |
| python -m pip install --upgrade pip | |
| python -m pip install ruff pytest | |
| # PySide6 6.12.0 drops a reference to None on each void call: fatal before Python 3.12 | |
| pip install "PySide6!=6.12.0; python_version < '3.12'" "PySide6; python_version >= '3.12'" setuptools numpy Cython | |
| python setup.py build_ext --inplace | |
| if [ "$TARGET_BRANCH" = "develop" ]; then | |
| pip uninstall -y guidata PythonQwt | |
| cd .. | |
| git clone --depth 1 --branch develop https://github.com/PlotPyStack/guidata.git | |
| git clone --depth 1 https://github.com/PlotPyStack/PythonQwt.git | |
| cd PlotPy | |
| pip install -e ../guidata | |
| pip install -e ../PythonQwt | |
| # Install tomli for TOML parsing (safe if already present) | |
| pip install tomli | |
| # Extract dependencies and save to file, then install | |
| python -c "import tomli; f=open('pyproject.toml','rb'); data=tomli.load(f); deps=[d for d in data['project']['dependencies'] if not any(p in d for p in ['guidata', 'PythonQwt'])]; open('deps.txt','w').write('\n'.join(deps))" | |
| pip install -r deps.txt | |
| # Install PlotPy without dependencies | |
| pip install --no-deps . | |
| elif [ "$TARGET_BRANCH" = "release" ]; then | |
| pip uninstall -y guidata PythonQwt | |
| cd .. | |
| # Try cloning guidata from release, fallback to main or master | |
| git clone --depth 1 --branch release https://github.com/PlotPyStack/guidata.git || git clone --depth 1 https://github.com/PlotPyStack/guidata.git || git clone --depth 1 --branch master https://github.com/PlotPyStack/guidata.git | |
| # Try cloning PythonQwt from main or master | |
| git clone --depth 1 https://github.com/PlotPyStack/PythonQwt.git || git clone --depth 1 --branch master https://github.com/PlotPyStack/PythonQwt.git | |
| cd PlotPy | |
| pip install -e ../guidata | |
| pip install -e ../PythonQwt | |
| # Install tomli for TOML parsing (safe if already present) | |
| pip install tomli | |
| # Extract dependencies and save to file, then install | |
| python -c "import tomli; f=open('pyproject.toml','rb'); data=tomli.load(f); deps=[d for d in data['project']['dependencies'] if not any(p in d for p in ['guidata', 'PythonQwt'])]; open('deps.txt','w').write('\n'.join(deps))" | |
| pip install -r deps.txt | |
| # Install PlotPy without dependencies | |
| pip install --no-deps . | |
| else | |
| # Install from PyPI normally for master branch | |
| pip install .[test] | |
| fi | |
| - name: Lint with Ruff | |
| run: ruff check --output-format=github plotpy | |
| - name: Test with pytest | |
| run: | | |
| pytest |