Skip to content
This repository has been archived by the owner on Dec 29, 2023. It is now read-only.

Commit

Permalink
ci: merge release.yml and continuous.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
srevinsaju committed Sep 24, 2020
1 parent 0308f10 commit fc8f2f6
Showing 1 changed file with 59 additions and 108 deletions.
167 changes: 59 additions & 108 deletions .github/workflows/continuous.yml
Expand Up @@ -28,11 +28,26 @@ jobs:
name: guiscrcpy-continuous-none-any-py3.whl
path: dist/${{ env.VERSION }}

- 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 dist/*

AppImage:
runs-on: ubuntu-latest
strategy:
matrix:
type: ['r', 'm']
container: ['ubuntu:18.04', 'ubuntu:16.04'] # r: full or m: minimal
exclude:
- type: 'r'
container: 'ubuntu:16.04'
- type: 'm'
container: 'ubuntu:18.04'
container:
image: ubuntu:18.04
image: ${{ matrix.container }}
steps:
- uses: actions/checkout@v2
with:
Expand Down Expand Up @@ -71,128 +86,58 @@ jobs:
sed -i 's,PyQt5,PySide2,g' *.py
python3 -m pyappimage.cli build
ls -a
- name: Bundle scrcpy
- name: Create Standalone scrcpy
if: matrix.type == 'm'
run: |
export APPIMAGE_EXTRACT_AND_RUN=1
wget -c $(curl -sL https://api.github.com/repos/srevinsaju/scrcpy-appimage/releases/latest | jq -r '.assets[].browser_download_url')
chmod +x scrcpy*.AppImage
./scrcpy*.AppImage --appimage-extract
mv squashfs-root scrcpy
mkdir squashfs-root
mv scrcpy squashfs-root/.
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
ARCH=x86_64 ./appimagetool*.AppImage -n guiscrcpy.AppDir
./guiscrcpy*.AppImage --appimage-extract
cp pyappimage/AppRun.standalone.sh guiscrcpy.AppDir/AppRun
chmod +x guiscrcpy.AppDir/AppRun
mv guiscrcpy.AppDir squashfs-root
export GUISCRCPY_VERSION="$(cat setup.py | grep 'version=' | grep -P -o '\d\.\d\.\d+').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"
export GUISCRCPY_TYPE="m"
./appimagetool*.AppImage squashfs-root -n \
-u 'gh-releases-zsync|srevinsaju|guiscrcpy|continuous|guiscrcpy-*.$GUISCRCPY_TYPE.*.AppImage.zsync' \
guiscrcpy-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage
guiscrcpy-min-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage
mkdir dist
mv guiscrcpy-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage* dist/.
- 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
run: |
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
export APPIMAGE_EXTRACT_AND_RUN=1
chmod +x scripts/display-ci.sh
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 dist/*.AppImage)"
- name: Upload artifact
uses: actions/upload-artifact@v1.0.0
with:
name: guiscrcpy-continuous-x86_64.AppImage
path: 'dist/'
mv guiscrcpy-min-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage* dist/.
AppImage-Standalone:
runs-on: ubuntu-latest
container:
image: ubuntu:16.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup up User
run: |
apt update
apt install -y sudo
echo "github ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
useradd -m github
usermod -aG sudo github
su - github
- name: Install dependencies
run: |
sudo apt -y install git
sudo apt -y install wget curl jq
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8 python3.8-dev python3.8-venv -y
wget https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py
mv `which python3.8` `which python3`
sudo apt install -y libtool libcairo-dev
sudo apt -y install libxcb-xinerama0
sudo apt -y install build-essential
git clone https://github.com/srevinsaju/pyappimage --depth=1 pyapim
cd pyapim
python3 -m pip install -r requirements.txt
python3 -m pip install .
cd ..
echo "$(git describe --tags --always --match '*[0-9]*')"
sed -i 's,qtpy,PySide2,g' ./**/*.py
sed -i 's,qtpy,PySide2,g' **/*.py
sed -i 's,PyQt5,PySide2,g' *.py
python3 -m pyappimage.cli build
ls -a
- name: Bundle scrcpy
if: matrix.type == 'r'
run: |
export APPIMAGE_EXTRACT_AND_RUN=1
wget -c $(curl -sL https://api.github.com/repos/srevinsaju/scrcpy-appimage/releases/latest | jq -r '.assets[].browser_download_url')
chmod +x scrcpy*.AppImage
./scrcpy*.AppImage --appimage-extract
mv squashfs-root scrcpy
mkdir squashfs-root
mv scrcpy squashfs-root/.
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
cp pyappimage/AppRun.standalone.sh guiscrcpy.AppDir/AppRun
chmod +x guiscrcpy.AppDir/AppRun
mv guiscrcpy.AppDir squashfs-root
ARCH=x86_64 ./appimagetool*.AppImage -n guiscrcpy.AppDir
./guiscrcpy*.AppImage --appimage-extract
export GUISCRCPY_VERSION="$(cat setup.py | grep 'version=' | grep -P -o '\d\.\d\.\d+').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"
export GUISCRCPY_TYPE="${{ matrix.type }}"
if [ "${{ matrix.type }}" == "m" ]; then
export GUISCRCPY_TYPE_EXPANDED="min-"
else
export GUISCRCPY_TYPE_EXPANDED=""
fi
./appimagetool*.AppImage squashfs-root -n \
-u 'gh-releases-zsync|srevinsaju|guiscrcpy|continuous|guiscrcpy-*.$GUISCRCPY_TYPE.*.AppImage.zsync' \
guiscrcpy-min-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage
guiscrcpy-$GUISCRCPY_TYPE_EXPANDED$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage
mkdir dist
mv guiscrcpy-min-$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage* dist/.
mv guiscrcpy-$GUISCRCPY_TYPE_EXPANDED$GUISCRCPY_VERSION.$GUISCRCPY_TYPE.$GUISCRCPY_GLIB_VERSION-$GUISCRCPY_MACHINE.AppImage* dist/.
- 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!
Expand All @@ -205,23 +150,22 @@ jobs:
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
chmod +x scripts/display-ci.sh
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 dist/*.AppImage)"
/usr/bin/xvfb-run --auto-servernum ./scripts/display-ci.sh "$(realpath dist/*.AppImage)"
- name: Upload artifact
uses: actions/upload-artifact@v1.0.0
with:
name: guiscrcpy-min-continuous-x86_64.AppImage
name: guiscrcpy-${{ matrix.type }}-continuous-x86_64.AppImage
path: 'dist/'


Expand Down Expand Up @@ -301,19 +245,26 @@ jobs:
with:
name: guiscrcpy-min-continuous-x86_64.AppImage

- name: Detect Release type
if: github.ref == 'refs/heads/master' && startsWith(github.ref, 'refs/tags/v') != true
run: |
echo "::set-env release_tag=continuous"
- name: Release
uses: marvinpinto/action-automatic-releases@latest
if: github.ref == 'refs/heads/master' && startsWith(github.ref, 'refs/tags/') != true
if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')
with:
automatic_release_tag: continuous
title: continuous
prerelease: !startsWith(github.ref, 'refs/tags/v')
draft: startsWith(github.ref, 'refs/tags/v')
automatic_release_tag: ${{ env.release_tag }} || null
title: ${{ env.release_tag }} || null
files: |
guiscrcpy-PyQt5-x86-continuous.exe
guiscrcpy-PyQt5-x64-continuous.exe
guiscrcpy-PySide2-x86-continuous.exe
guiscrcpy-PySide2-x64-continuous.exe
guiscrcpy-continuous-none-any-py3.whl
guiscrcpy-continuous-x86_64.AppImage
guiscrcpy-min-continuous-x86_64.AppImage
guiscrcpy-m-continuous-x86_64.AppImage
guiscrcpy-r-continuous-x86_64.AppImage
repo_token: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit fc8f2f6

Please sign in to comment.