This repository has been archived by the owner on Dec 29, 2023. It is now read-only.
docs: update #348 #734
This file contains 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
name: Continuous | |
on: | |
- push | |
jobs: | |
Wheel: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v1 | |
with: | |
python-version: 3.9 | |
- name: Build wheel | |
run: | | |
python -m pip install wheel poetry twine | |
poetry build | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1.0.0 | |
with: | |
name: guiscrcpy-python | |
path: dist/ | |
- name: Publish distribution 📦 to Test PyPI | |
if: startsWith(github.ref, 'refs/tags/v') | |
env: | |
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
run: twine upload --skip-existing dist/* | |
AppImage: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
type: ['r', 'm'] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Fetch all tags | |
run: git fetch --tags --force | |
- name: Build | |
run: | | |
# force usage of PySide2 to prevent having surprises with pyinstaller. | |
sed -i 's/qtpy/PySide2/g' **/*.py | |
docker build -t guiscrcpy-appimage-build -f scripts/ci/pyappimage/Dockerfile . | |
docker run --rm -v $(pwd):/usr/src guiscrcpy-appimage-build | |
ls -al | |
- name: Create guiscrcpy | |
if: matrix.type == 'm' | |
run: | | |
export GUISCRCPY_VERSION="$(git describe --tags --always --match 'v*.*').dev" | |
export GUISCRCPY_GLIB_VERSION="glibc$(ldd --version | grep 'ldd ' | grep -o ').[0-9].[0-9][0-9]' | grep -o '[0-9].[0-9][0-9]')" | |
export GUISCRCPY_MACHINE="$(uname -m)" | |
export GUISCRCPY_TYPE="m" | |
./scripts/build-appimage.sh | |
- name: Bundle scrcpy | |
if: matrix.type == 'r' | |
run: | | |
export GUISCRCPY_VERSION="$(git describe --tags --always --match 'v*.*').dev" | |
export GUISCRCPY_GLIB_VERSION="glibc$(ldd --version | grep 'ldd ' | grep -o ').[0-9].[0-9][0-9]' | grep -o '[0-9].[0-9][0-9]')" | |
export GUISCRCPY_MACHINE="$(uname -m)" | |
export GUISCRCPY_TYPE="r" | |
./scripts/build-appimage.sh | |
- name: Install Destop Environment | |
run: | | |
echo "adapted from https://github.com/AppImage/appimage.github.io/blob/master/.travis.yml" | |
sudo apt-get update | |
sudo apt-get -qq -y install imagemagick libasound2-dev pulseaudio-utils alsa-utils alsa-oss libjack0 desktop-file-utils xmlstarlet xterm xvfb icewm x11-utils x11-apps netpbm xdotool libgl1-mesa-dri libgl1-mesa-dev mesa-utils libosmesa6 libsdl1.2-dev fonts-wqy-microhei libfile-mimeinfo-perl libx11-xcb1 libxcb-xkb1 libxcb-* libxcb-render-util0 libxkbcommon-x11-0 libxkbcommon0 > /dev/null # appstream # TODO: Cache me! | |
mkdir $HOME/.icewm/ | |
echo "ShowTaskBar = 0" > $HOME/.icewm/preferences | |
echo "TaskBarAutoHide = 1" > $HOME/.icewm/preferences | |
echo "TaskBarShowWorkspaces = 0" > $HOME/.icewm/preferences | |
echo "TaskBarShowAllWindows = 0" > $HOME/.icewm/preferences | |
echo "TaskBarShowClock = 0" > $HOME/.icewm/preferences | |
echo "TaskBarShowMailboxStatus = 0" > $HOME/.icewm/preferences | |
echo "TaskBarShowCPUStatus = 0" > $HOME/.icewm/preferences | |
echo "TaskBarShowWindowListMenu = 0" > $HOME/.icewm/preferences | |
- name: Run headless test | |
if: matrix.type == 'r' | |
run: | | |
export LC_ALL=C.UTF-8 | |
export LANG=C.UTF-8 | |
export APPIMAGE_EXTRACT_AND_RUN=1 | |
echo "echo Dummy scrcpy" | sudo tee -a /usr/bin/scrcpy | |
sudo chmod +x /usr/bin/scrcpy | |
/usr/bin/xvfb-run --auto-servernum ./scripts/display-ci.sh "$(realpath _build/*.AppImage)" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1.0.0 | |
with: | |
name: guiscrcpy-${{ matrix.type }}-continuous-x86_64.AppImage | |
path: '_build' | |
Windows: | |
name: Windows | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
arch: ['x64', 'x86'] | |
qt: ['PyQt5', 'PySide2'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Setup Python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.9' | |
architecture: ${{ matrix.arch }} | |
- name: Install dependencies | |
shell: bash | |
run: | | |
python.exe -m pip install --upgrade pip wheel --user | |
pip3 install --upgrade --user poetry PyInstaller ${{ matrix.qt }} | |
poetry install -E ${{ matrix.qt }} | |
poetry build | |
pip3 install dist/*.whl | |
- name: Create .exe | |
run: | | |
echo "from guiscrcpy.cli import cli; cli()" > entry.py | |
python -m PyInstaller -n guiscrcpy-${{ matrix.qt }}-${{ matrix.arch }} .\entry.py --onefile -i guiscrcpy\ui\icons\guiscrcpy_logo_SRj_icon.ico --hidden-import pywin32 | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1.0.0 | |
with: | |
# Artifact name | |
name: guiscrcpy-${{ matrix.qt }}-${{ matrix.arch }}-continuous.exe | |
# Directory containing files to upload | |
path: dist | |
MacOS: | |
name: MacOS | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
arch: ['x64'] | |
qt: ['PySide2'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Setup Python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.9' | |
architecture: ${{ matrix.arch }} | |
- name: Install dependencies | |
run: | | |
pip3 install --upgrade pip wheel | |
pip3 install --upgrade poetry PyInstaller ${{ matrix.qt }} | |
poetry build | |
pip3 install dist/*.whl | |
- name: Create .exe | |
run: | | |
echo "from guiscrcpy.cli import cli; cli()" > entry.py | |
python -m PyInstaller -n guiscrcpy-${{ matrix.qt }}-${{ matrix.arch }} ./entry.py --onefile -i guiscrcpy/ui/icons/guiscrcpy_logo_SRj_icon.ico --osx-bundle-identifier 'io.github.srevinsaju.guiscrcpy' --windowed | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1.0.0 | |
with: | |
# Artifact name | |
name: guiscrcpy-${{ matrix.qt }}-${{ matrix.arch }}-continuous.app | |
# Directory containing files to upload | |
path: dist | |
Release: | |
needs: [Windows, AppImage, Wheel, MacOS] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v2 | |
- name: Create release and upload artifacts | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CHANGELOG_TYPE: conventional | |
run: | | |
ls -alHR | |
export APPIMAGE_EXTRACT_AND_RUN=1 | |
wget -q https://github.com/srevinsaju/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage && chmod +x pyuploadtool-x86_64.AppImage | |
./pyuploadtool-x86_64.AppImage \ | |
guiscrcpy-PyQt5-x64-continuous.exe/guiscrcpy-PyQt5-x64.exe \ | |
guiscrcpy-PyQt5-x86-continuous.exe/guiscrcpy-PyQt5-x86.exe \ | |
guiscrcpy-PySide2-x64-continuous.app/guiscrcpy-PySide2-x64 \ | |
guiscrcpy-PySide2-x64-continuous.exe/guiscrcpy-PySide2-x64.exe \ | |
guiscrcpy-PySide2-x86-continuous.exe/guiscrcpy-PySide2-x86.exe \ | |
guiscrcpy-m-continuous-x86_64.AppImage/guiscrcpy*x86_64.AppImage \ | |
guiscrcpy-python/guiscrcpy*.* \ | |
guiscrcpy-r-continuous-x86_64.AppImage/guiscrcpy*.AppImage |