diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..134184a5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,44 @@ +name: build + +# Run this workflow every time a new commit pushed to your repository +on: push + +jobs: + build: + name: Build Wheel + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Setup Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Build Wheel + run: | + python -m pip install setuptools wheel + python setup.py bdist_wheel + - name: Archive pyqtgraph wheel + uses: actions/upload-artifact@v2 + with: + name: wheel + path: | + dist + +# - stage: build +# dependsOn: [] +# jobs: +# - job: "build_wheel" +# pool: +# vmImage: 'Ubuntu 18.04' +# steps: +# - task: UsePythonVersion@0 +# inputs: +# versionSpec: 3.8 +# - script: | +# python -m pip install setuptools wheel +# python setup.py bdist_wheel --universal +# displayName: "Build Python Wheel" +# continueOnError: false +# - publish: dist +# artifact: wheel \ No newline at end of file diff --git a/.github/workflows/pre-build.yml b/.github/workflows/pre-build.yml index 3951fb0c..bc285748 100644 --- a/.github/workflows/pre-build.yml +++ b/.github/workflows/pre-build.yml @@ -15,15 +15,15 @@ jobs: steps: # Checks out a copy of your repository on the ubuntu-latest machine - uses: actions/checkout@v2 - - name: Set up Python 3.8 + - name: Setup Python 3.9 uses: actions/setup-python@v2 with: - python-version: '3.8' + python-version: '3.9' # Runs the Super-Linter action - name: Style check run: | pip install flake8 - python setup.py style + python -m flake8 . - name: Build Docs run: | cd doc diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..315dd3be --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,87 @@ +name: test pyqtgraph + +on: [push] + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + qt-lib: [pyqt5, pyside2] + python-version: [3.7, 3.8, 3.9] + include: + - python-version: "3.7" + qt-version: "~=5.12.0" + numpy-version: "~=1.17.0" + - python-version: "3.8" + qt-version: "~=5.15.0" + numpy-version: "~=1.19.0" + - python-version: "3.9" + qt-version: "" + numpy-version: "" + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + # Semantic version range syntax or exact version of a Python version + python-version: ${{ matrix.python-version }} + - name: "Install Windows-Mesa OpenGL DLL" + if: runner.os == 'Windows' + run: | + curl -LJO https://github.com/pal1000/mesa-dist-win/releases/download/19.1.0/mesa3d-19.1.0-release-msvc.exe + 7z x mesa3d-19.1.0-release-msvc.exe + cd x64 + xcopy opengl32.dll C:\windows\system32\mesadrv.dll* + xcopy opengl32.dll C:\windows\syswow64\mesadrv.dll* + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f + REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f + shell: cmd + - name: Install Dependencies + run: | + pip install ${{ matrix.qt-lib }}${{ matrix.qt-version }} numpy${{ matrix.numpy-version }} scipy pyopengl h5py six matplotlib + pip install . + pip install pytest pytest-cov coverage pytest-xdist + - name: "Install Linux VirtualDisplay" + if: runner.os == 'Linux' + run: | + sudo apt-get install -y libxkbcommon-x11-0 xvfb x11-utils + sudo apt-get install --no-install-recommends -y libyaml-dev libegl1-mesa libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 + pip install pytest-xvfb + - name: 'Debug Info' + run: | + echo python location: `which python` + echo python version: `python --version` + echo pytest location: `which pytest` + echo installed packages + pip list + echo pyqtgraph system info + python -c "import pyqtgraph as pg; pg.systemInfo()" + echo display information + + shell: bash + env: + QT_DEBUG_PLUGINS: 1 + - name: Run Tests + run: | + pytest . -v \ + -n 1 \ + --junitxml=junit/test-results.xml \ + --cov pyqtgraph --cov-report=xml --cov-report=html + shell: bash + env: + AZURE: 1 + - name: Upload Unit Test Results + if: always() + uses: actions/upload-artifact@v2 + with: + name: Unit Test Results (Python ${{ matrix.python-version }} - Qt-Bindings ${{ matrix.qt-lib }} - OS ${{ matrix.os }}) + path: junit/test-results.xml diff --git a/tools/setupHelpers.py b/tools/setupHelpers.py index 642c5d77..63b255d3 100644 --- a/tools/setupHelpers.py +++ b/tools/setupHelpers.py @@ -379,7 +379,7 @@ def getGitVersion(tagPrefix): 'describe', '--tags', '--dirty', - '--match=%s*'%tagPrefix]).strip().decode('utf-8') + '--match="%s*"'%tagPrefix]).strip().decode('utf-8') # chop off prefix assert v.startswith(tagPrefix)