ci: Gitea Actions build pipeline for patched rustdesk.exe
Build patched rustdesk.exe / Build Win x64 (Sciter UI) (push) Failing after 35s
Build patched rustdesk.exe / Build Win x64 (Sciter UI) (push) Failing after 35s
Self-hosted Windows runner builds the Sciter-UI rustdesk.exe with our get_cursor() patch for issue #672. Pinned to LLVM 16.0.0 + vcpkg commit 120deac3 to match upstream rustdesk CI exactly. Artifact uploaded to Gitea releases for OnRamp's Install-RustDeskClient to fetch. Triggers on push to yowie-master + workflow_dispatch.
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# Yowie IT — RustDesk patched-binary build pipeline
|
||||
# =====================================================================
|
||||
# Source-of-truth build for the Yowie IT-patched rustdesk.exe (always-
|
||||
# emit-cursor variant for #672 server endpoint headless cursor fix).
|
||||
#
|
||||
# Triggers: push to yowie-master, manual dispatch.
|
||||
# Runs on: self-hosted Windows runner (yowie-admin-pc) registered with
|
||||
# git.yowieit.com — see CHANGELOG 2026-05-02.
|
||||
#
|
||||
# Toolchain version pins (match rustdesk upstream CI exactly):
|
||||
# - LLVM 16.0.0 (rustdesk's LLVM_VERSION)
|
||||
# - vcpkg @ 120deac3062162151622ca4860575a33844ba10b
|
||||
# - Rust stable
|
||||
#
|
||||
# Output artifact: rustdesk.exe (~50 MB) attached to a Gitea release
|
||||
# tagged build-${{ github.sha }}. OnRamp's Install-RustDeskClient
|
||||
# downloads from this release URL.
|
||||
|
||||
name: Build patched rustdesk.exe
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [yowie-master]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
LLVM_VERSION: "16.0.0"
|
||||
VCPKG_COMMIT_ID: "120deac3062162151622ca4860575a33844ba10b"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Win x64 (Sciter UI)
|
||||
runs-on: windows-x64
|
||||
steps:
|
||||
- name: Checkout source
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Verify Rust toolchain
|
||||
shell: pwsh
|
||||
run: |
|
||||
rustc --version
|
||||
cargo --version
|
||||
|
||||
- name: Setup LLVM ${{ env.LLVM_VERSION }} (pinned, matches upstream rustdesk CI)
|
||||
shell: pwsh
|
||||
run: |
|
||||
if (-not (Test-Path 'C:\LLVM16\bin\libclang.dll')) {
|
||||
$url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-$env:LLVM_VERSION/LLVM-$env:LLVM_VERSION-win64.exe"
|
||||
$dst = "$env:TEMP\llvm-$env:LLVM_VERSION.exe"
|
||||
Write-Output "downloading $url"
|
||||
Invoke-WebRequest -Uri $url -OutFile $dst -UseBasicParsing -TimeoutSec 600
|
||||
Write-Output "installing to C:\LLVM16"
|
||||
Start-Process -FilePath $dst -ArgumentList '/S','/D=C:\LLVM16' -Wait
|
||||
if (-not (Test-Path 'C:\LLVM16\bin\libclang.dll')) { throw "LLVM 16 install failed" }
|
||||
}
|
||||
echo "LIBCLANG_PATH=C:\LLVM16\bin" >> $env:GITHUB_ENV
|
||||
echo "C:\LLVM16\bin" >> $env:GITHUB_PATH
|
||||
|
||||
- name: Setup vcpkg @ pinned commit ${{ env.VCPKG_COMMIT_ID }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
if (-not (Test-Path 'C:\vcpkg\vcpkg.exe')) {
|
||||
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
|
||||
}
|
||||
Push-Location C:\vcpkg
|
||||
git fetch --depth=200 origin $env:VCPKG_COMMIT_ID
|
||||
git checkout $env:VCPKG_COMMIT_ID
|
||||
.\bootstrap-vcpkg.bat -disableMetrics
|
||||
Pop-Location
|
||||
echo "VCPKG_ROOT=C:\vcpkg" >> $env:GITHUB_ENV
|
||||
echo "C:\vcpkg" >> $env:GITHUB_PATH
|
||||
|
||||
- name: Install vcpkg native deps (libvpx libyuv opus aom libjpeg-turbo, x64-windows-static)
|
||||
shell: pwsh
|
||||
run: |
|
||||
C:\vcpkg\vcpkg.exe install --triplet x64-windows-static libvpx libyuv opus aom libjpeg-turbo
|
||||
|
||||
- name: cargo build --release (Sciter UI, no flutter, no hwcodec)
|
||||
shell: pwsh
|
||||
run: |
|
||||
cargo build --release --no-default-features --features inline
|
||||
|
||||
- name: Verify binary + show patch line is in built source
|
||||
shell: pwsh
|
||||
run: |
|
||||
$exe = "target\release\rustdesk.exe"
|
||||
if (-not (Test-Path $exe)) { throw "rustdesk.exe not produced" }
|
||||
$size = (Get-Item $exe).Length
|
||||
Write-Output "rustdesk.exe size: $size bytes"
|
||||
# Confirm our patch comment is in the source
|
||||
if (-not (Select-String -Path "src\platform\windows.rs" -Pattern "Yowie IT MSP fork" -Quiet)) {
|
||||
throw "patch marker missing from src\platform\windows.rs"
|
||||
}
|
||||
|
||||
- name: Upload patched rustdesk.exe artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: rustdesk-yowie-windows-x64
|
||||
path: target/release/rustdesk.exe
|
||||
retention-days: 30
|
||||
Reference in New Issue
Block a user