# ##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. # #----------------------------- name: Continuous on: schedule: - cron: "5 */12 * * *" push: branches: [master] pull_request: branches: [master] jobs: ubuntu: runs-on: ubuntu-latest container: image: ubuntu:bionic 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 ./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 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/' Release: needs: [ubuntu] 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 }}