Build #76
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: Build | |
on: | |
workflow_dispatch: | |
inputs: | |
name: | |
description: 'Version name (default is ref name)' | |
env: | |
# $VERSION is used by release scripts | |
VERSION: ${{ github.event.inputs.name || github.ref_name }} | |
jobs: | |
test-scrcpy-server: | |
runs-on: ubuntu-latest | |
env: | |
GRADLE: gradle # use native gradle instead of ./gradlew in scripts | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Test scrcpy-server | |
run: release/test_server.sh | |
build-scrcpy-server: | |
runs-on: ubuntu-latest | |
env: | |
GRADLE: gradle # use native gradle instead of ./gradlew in scripts | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Build scrcpy-server | |
run: release/build_server.sh | |
- name: Upload scrcpy-server artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/scrcpy-server | |
test-build-scrcpy-server-without-gradle: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Build scrcpy-server without gradle | |
run: server/build_without_gradle.sh | |
test-client: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y meson ninja-build nasm ffmpeg libsdl2-2.0-0 \ | |
libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev \ | |
libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev \ | |
libv4l-dev | |
- name: Test | |
run: release/test_client.sh | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y meson ninja-build nasm ffmpeg libsdl2-2.0-0 \ | |
libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev \ | |
libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev \ | |
libv4l-dev | |
- name: Build linux | |
run: release/build_linux.sh | |
# upload-artifact does not preserve permissions | |
- name: Tar | |
run: | | |
cd release/work/build-linux | |
mkdir dist-tar | |
cd dist-tar | |
tar -C .. -cvf dist.tar.gz dist/ | |
- name: Upload build-linux artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-linux-intermediate | |
path: release/work/build-linux/dist-tar/ | |
build-win32: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y meson ninja-build nasm ffmpeg libsdl2-2.0-0 \ | |
libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev \ | |
libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev \ | |
mingw-w64 mingw-w64-tools libz-mingw-w64-dev | |
- name: Workaround for old meson version run by Github Actions | |
run: sed -i 's/^pkg-config/pkgconfig/' cross_win32.txt | |
- name: Build win32 | |
run: release/build_windows.sh 32 | |
# upload-artifact does not preserve permissions | |
- name: Tar | |
run: | | |
cd release/work/build-win32 | |
mkdir dist-tar | |
cd dist-tar | |
tar -C .. -cvf dist.tar.gz dist/ | |
- name: Upload build-win32 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-win32-intermediate | |
path: release/work/build-win32/dist-tar/ | |
build-win64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y meson ninja-build nasm ffmpeg libsdl2-2.0-0 \ | |
libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev \ | |
libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev \ | |
mingw-w64 mingw-w64-tools libz-mingw-w64-dev | |
- name: Workaround for old meson version run by Github Actions | |
run: sed -i 's/^pkg-config/pkgconfig/' cross_win64.txt | |
- name: Build win64 | |
run: release/build_windows.sh 64 | |
# upload-artifact does not preserve permissions | |
- name: Tar | |
run: | | |
cd release/work/build-win64 | |
mkdir dist-tar | |
cd dist-tar | |
tar -C .. -cvf dist.tar.gz dist/ | |
- name: Upload build-win64 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-win64-intermediate | |
path: release/work/build-win64/dist-tar/ | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
brew install meson ninja nasm libiconv zlib automake autoconf \ | |
libtool | |
- name: Build macOS | |
run: release/build_macos.sh | |
# upload-artifact does not preserve permissions | |
- name: Tar | |
run: | | |
cd release/work/build-macos | |
mkdir dist-tar | |
cd dist-tar | |
tar -C .. -cvf dist.tar.gz dist/ | |
- name: Upload build-macos artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-macos-intermediate | |
path: release/work/build-macos/dist-tar/ | |
package-linux: | |
needs: | |
- build-scrcpy-server | |
- build-linux | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download scrcpy-server | |
uses: actions/download-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/ | |
- name: Download build-linux | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-linux-intermediate | |
path: release/work/build-linux/dist-tar/ | |
# upload-artifact does not preserve permissions | |
- name: Detar | |
run: | | |
cd release/work/build-linux | |
tar xf dist-tar/dist.tar.gz | |
- name: Package linux | |
run: release/package_client.sh linux tar.gz | |
- name: Upload linux release | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-linux | |
path: release/output/ | |
package-win32: | |
needs: | |
- build-scrcpy-server | |
- build-win32 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download scrcpy-server | |
uses: actions/download-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/ | |
- name: Download build-win32 | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-win32-intermediate | |
path: release/work/build-win32/dist-tar/ | |
# upload-artifact does not preserve permissions | |
- name: Detar | |
run: | | |
cd release/work/build-win32 | |
tar xf dist-tar/dist.tar.gz | |
- name: Package win32 | |
run: release/package_client.sh win32 zip | |
- name: Upload win32 release | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-win32 | |
path: release/output/ | |
package-win64: | |
needs: | |
- build-scrcpy-server | |
- build-win64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download scrcpy-server | |
uses: actions/download-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/ | |
- name: Download build-win64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-win64-intermediate | |
path: release/work/build-win64/dist-tar/ | |
# upload-artifact does not preserve permissions | |
- name: Detar | |
run: | | |
cd release/work/build-win64 | |
tar xf dist-tar/dist.tar.gz | |
- name: Package win64 | |
run: release/package_client.sh win64 zip | |
- name: Upload win64 release | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-win64 | |
path: release/output | |
package-macos: | |
needs: | |
- build-scrcpy-server | |
- build-macos | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download scrcpy-server | |
uses: actions/download-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/ | |
- name: Download build-macos | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-macos-intermediate | |
path: release/work/build-macos/dist-tar/ | |
# upload-artifact does not preserve permissions | |
- name: Detar | |
run: | | |
cd release/work/build-macos | |
tar xf dist-tar/dist.tar.gz | |
- name: Package macos | |
run: release/package_client.sh macos tar.gz | |
- name: Upload macos release | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-macos | |
path: release/output/ | |
release: | |
needs: | |
- build-scrcpy-server | |
- package-linux | |
- package-win32 | |
- package-win64 | |
- package-macos | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download scrcpy-server | |
uses: actions/download-artifact@v4 | |
with: | |
name: scrcpy-server | |
path: release/work/build-server/server/ | |
- name: Download release-linux | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-linux | |
path: release/output/ | |
- name: Download release-win32 | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-win32 | |
path: release/output/ | |
- name: Download release-win64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-win64 | |
path: release/output/ | |
- name: Download release-macos | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-macos | |
path: release/output/ | |
- name: Package server | |
run: release/package_server.sh | |
- name: Generate checksums | |
run: release/generate_checksums.sh | |
- name: Upload release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: scrcpy-release-${{ env.VERSION }} | |
path: release/output |