name: Build on: [push, pull_request] jobs: windows: name: Build for Windows runs-on: windows-2019 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: '3.8' architecture: x86 - name: Check Python install run: | which python python --version python -c "import struct; print(struct.calcsize('P') * 8)" which pip pip --version - name: Install Python dependencies run: | pip3 install -U setuptools wheel pip pip3 install -r requirements.txt pip3 install -r requirements_gui.txt pip3 install py2exe - name: Check Python dependencies run: | python3 -c "from PySide2 import __version__; print(__version__)" python3 -c "from PySide2.QtCore import __version__; print(__version__)" python3 -c "from PySide2.QtCore import QLibraryInfo; print(QLibraryInfo.location(QLibraryInfo.LibrariesPath))" - name: Build run: | $ver = (findstr version .\syncplay\__init__.py).split("'")[1] echo $ver echo "VER=$ver" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append python buildPy2exe.py New-Item -Path syncplay_v$ver -Name "syncplay.ini" -Value $null - name: Prepare for deployment run: dir - name: Deploy portable uses: actions/upload-artifact@v2 with: name: Syncplay_${{ env.VER }}_Portable path: | syncplay_v${{ env.VER }} - name: Deploy installer uses: actions/upload-artifact@v2 with: name: Syncplay-${{ env.VER }}-Setup.exe path: | Syncplay-${{ env.VER }}-Setup.exe macos: name: Build for macOS runs-on: macos-10.15 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: '3.9' - name: Check Python install run: | which python3 python3 --version which pip3 pip3 --version - name: Install Python dependencies run: | pip3 install -U setuptools wheel pip pip3 install twisted[tls] appnope requests certifi pip3 install shiboken2==5.15.2 pyside2==5.15.2 pip3 install altgraph modulegraph macholib - name: Install py2app run: | git clone https://github.com/albertosottile/py2app.git cd py2app git checkout stubs cd py2app/apptemplate python3 setup.py build cd ../.. python3 setup.py build python3 setup.py install cd .. - name: Check Python dependencies run: | python3 -c "from PySide2 import __version__; print(__version__)" python3 -c "from PySide2.QtCore import __version__; print(__version__)" python3 -c "from PySide2.QtCore import QLibraryInfo; print(QLibraryInfo.location(QLibraryInfo.LibrariesPath))" python3 -c "import ssl; print(ssl)" python3 -c "from py2app.recipes import pyside2" echo $DYLD_LIBRARY_PATH echo $DYLD_FRAMEWORK_PATH # python3 -c 'from distutils.sysconfig import get_config_var; print(get_config_var("LDLIBRARY"))' - name: Build run: | python3 ci/pyside2_linker.py # export LIBPYTHON_FOLDER="$(python3 -c 'from distutils.sysconfig import get_config_var; print(get_config_var("LIBDIR"))')" # ln -s $LIBPYTHON_FOLDER/libpython3.9m.dylib $LIBPYTHON_FOLDER/libpython3.9.dylib export DYLD_FRAMEWORK_PATH="$(python3 -c 'from PySide2.QtCore import QLibraryInfo; print(QLibraryInfo.location(QLibraryInfo.LibrariesPath))')" export DYLD_LIBRARY_PATH="$(python3 -c 'import os.path, PySide2; print(os.path.dirname(PySide2.__file__))'):$(python3 -c 'import os.path, shiboken2; print(os.path.dirname(shiboken2.__file__))')" python3 buildPy2app.py py2app - name: Prepare for deployment run: | ls -al export VER="$(cat syncplay/__init__.py | awk '/version/ {gsub("\047", "", $3); print $NF}')" echo "VER=$VER" >> $GITHUB_ENV mkdir dist_actions ci/macos-deploy.sh ls -al dist_actions - name: Deploy uses: actions/upload-artifact@v2 with: name: Syncplay_${{ env.VER }}.dmg path: | dist_actions/Syncplay_${{ env.VER }}.dmg appimage: name: Build AppImage runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: | sudo apt-get install --no-install-recommends \ libglib2.0-0 \ libxkbcommon-x11-0 \ libxcb1 \ ; - name: Build run: ci/appimage-script.sh - name: Prepare for deployment run: | ls -al export VER="$(cat syncplay/__init__.py | awk '/version/ {gsub("\047", "", $3); print $NF}')" echo "VER=$VER" >> $GITHUB_ENV mkdir dist_actions ci/appimage-deploy.sh ls -al dist_actions - name: Deploy uses: actions/upload-artifact@v2 with: name: Syncplay-${{ env.VER }}-x86_64.AppImage path: | dist_actions/Syncplay-${{ env.VER }}-x86_64.AppImage deb: name: Build Debian package runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Build run: ci/deb-script.sh - name: Build server run: ci/deb-server-script.sh - name: Test run: ci/deb-installation-test.sh - name: Prepare for deployment run: | ls -al export VER="$(cat syncplay/__init__.py | awk '/version/ {gsub("\047", "", $3); print $NF}')" echo "VER=$VER" >> $GITHUB_ENV mkdir dist_actions mv /tmp/syncplay.deb dist_actions/syncplay_${VER}.deb mv /tmp/syncplay-server.deb dist_actions/syncplay-server_${VER}.deb ls -al dist_actions - name: Deploy full deb uses: actions/upload-artifact@v2 with: name: syncplay.deb path: | dist_actions/syncplay_*.deb - name: Deploy server deb uses: actions/upload-artifact@v2 with: name: syncplay-server.deb path: | dist_actions/syncplay-server_*.deb