scrcpy-appimage/.github/workflows/continuous.yml

133 lines
5.2 KiB
YAML
Raw Normal View History

2020-08-26 08:06:00 -05:00
#
##MIT License
#
#Copyright (c) 2020 Srevin Saju
#
#Permission is hereby granted, free of charge, to any person obtaining a copy
#of this software and associated documentation files (the "Software"), to deal
#in the Software without restriction, including without limitation the rights
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#copies of the Software, and to permit persons to whom the Software is
#furnished to do so, subject to the following conditions:
#
#The above copyright notice and this permission notice shall be included in all
#copies or substantial portions of the Software.
#
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
#SOFTWARE.
#
#-----------------------------
2020-09-12 10:05:27 -05:00
#This file is part of Zap AppImage Package Manager
2020-08-26 08:06:00 -05:00
name: Continuous
on:
2020-08-27 01:05:11 -05:00
schedule:
- cron: "5 */12 * * *"
push:
branches: [master]
pull_request:
branches: [master]
2020-08-26 08:06:00 -05:00
jobs:
2020-09-12 08:53:47 -05:00
ubuntu:
runs-on: ubuntu-latest
container:
2020-09-12 10:05:27 -05:00
image: appimagecrafters/appimage-builder:latest
2020-09-12 08:53:47 -05:00
steps:
- uses: actions/checkout@v2
- name: Set 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
sudo apt -y install git wget curl jq unzip
sudo apt -y install build-essential
- name: Clone scrcpy
run: |
wget https://github.com/ninja-build/ninja/releases/download/v1.10.1/ninja-linux.zip
unzip ninja-linux.zip
mkdir bin
mv ninja bin/.
echo "Ninja here: $(which ninja)"
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
sudo apt install -y ffmpeg libsdl2-2.0-0 adb
# client build dependencies
sudo apt install -y gcc git pkg-config ninja-build \
libavcodec-dev libavformat-dev libavutil-dev \
libsdl2-dev
sudo apt install -y python3-pip
pip3 install meson --user
- name: Build scrcpy
run: |
cd scrcpy
wget $(curl https://api.github.com/repos/Genymobile/scrcpy/releases/latest | jq -r '.assets[].browser_download_url' | grep server) -O scrcpy_server
~/.local/bin/meson x --buildtype release --strip -Db_lto=true \
-Dprebuilt_server=./scrcpy_server
ninja -Cx
sudo ninja -Cx install
- name: Build AppImage
run: |
cd scrcpy
export APPIMAGE_EXTRACT_AND_RUN=1
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy*.AppImage
mkdir AppDir
export SRC_ROOT=$(realpath ..)
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/pulseaudio/:$LD_LIBRARY_PATH
2020-09-12 10:50:38 -05:00
./linuxdeploy*.AppImage -e /usr/local/bin/scrcpy --desktop-file $SRC_ROOT/scrcpy.desktop --icon-file $SRC_ROOT/scrcpy.png --appdir=AppDir --custom-apprun=$SRC_ROOT/AppRun --library=/usr/lib/x86_64-linux-gnu/libsndio.so.6.1 --library=/usr/lib/x86_64-linux-gnu/libicui18n.so.60 --library=/usr/lib/x86_64-linux-gnu/libicudata.so.60 --library=/usr/lib/x86_64-linux-gnu/libnettle.so.6 --library=/usr/lib/x86_64-linux-gnu/libhogweed.so.4 --library=/usr/lib/x86_64-linux-gnu/libicuuc.so.60
2020-09-12 08:53:47 -05:00
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip
export ADB_DIR=$(realpath platform-tools)
export BUILD_DIR=$(realpath x)
cp $BUILD_DIR/app/scrcpy AppDir/usr/bin/.
cp $ADB_DIR/adb AppDir/usr/bin/.
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool*.AppImage
mkdir -p AppDir/usr/local/share/scrcpy/
cp scrcpy_server AppDir/usr/local/share/scrcpy/scrcpy-server
./appimagetool*.AppImage AppDir -n -u 'gh-releases-zsync|srevinsaju|scrcpy-appimage|continuous|scrcpy*.AppImage.zsync' scrcpy-$(git describe --tags)-$(uname -m).AppImage
mkdir dist
mv scrcpy*.AppImage* dist/
- name: Upload Appimage
uses: actions/upload-artifact@v1.0.0
with:
name: scrcpy-continuous-x86_64.AppImage
path: 'scrcpy/dist/'
2020-08-26 08:06:00 -05:00
Release:
2020-09-12 09:13:41 -05:00
needs: [ubuntu]
2020-08-26 08:06:00 -05:00
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v1
with:
name: scrcpy-continuous-x86_64.AppImage
- name: Release
uses: marvinpinto/action-automatic-releases@latest
if: github.ref == 'refs/heads/master'
with:
automatic_release_tag: continuous
title: Scrcpy AppImage Release
prerelease: false
files: |
scrcpy-continuous-x86_64.AppImage
repo_token: ${{ secrets.GITHUB_TOKEN }}