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: 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: Test scrcpy-server run: release/test_server.sh - 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-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 - name: Test run: release/test_client.sh 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 - name: Upload build-win32 artifact uses: actions/upload-artifact@v4 with: name: build-win32-intermediate path: release/work/build-win32/dist/ 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 - name: Upload build-win64 artifact uses: actions/upload-artifact@v4 with: name: build-win64-intermediate path: release/work/build-win64/dist/ package: needs: - build-scrcpy-server - build-win32 - 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-win32 uses: actions/download-artifact@v4 with: name: build-win32-intermediate path: release/work/build-win32/dist/ - name: Download build-win64 uses: actions/download-artifact@v4 with: name: build-win64-intermediate path: release/work/build-win64/dist/ - name: Package server run: release/package_server.sh - name: Package win32 run: release/package_client.sh win32 - name: Package win64 run: release/package_client.sh win64 - 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