Add Apple remote compile gate

This commit is contained in:
2026-06-05 11:13:28 +02:00
parent b534c4a4da
commit 48f98d337b
6 changed files with 142 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
[CmdletBinding()]
param(
[string]$HostName = "panopainter-mac",
[string]$RemoteDirectory = "~/Dev/panopainter",
[string]$RepositoryUrl = "ssh://git@git.omar.synology.me:3022/omar/panopainter.git",
[string]$Branch = "codex/modernization-cmake-foundation",
[string[]]$Presets = @("macos", "ios-simulator", "ios-device")
)
$ErrorActionPreference = "Stop"
function Join-RemoteArgument {
param([string[]]$Values)
$expanded = @()
foreach ($value in $Values) {
foreach ($part in ($value -split ",")) {
$trimmed = $part.Trim()
if ($trimmed.Length -gt 0) {
$expanded += $trimmed
}
}
}
return ($expanded -join " ")
}
function ConvertTo-ShellSingleQuoted {
param([string]$Value)
return "'" + ($Value -replace "'", "'\\''") + "'"
}
$presetArgument = Join-RemoteArgument -Values $Presets
$remoteDirectoryLiteral = ConvertTo-ShellSingleQuoted -Value $RemoteDirectory
$repositoryLiteral = ConvertTo-ShellSingleQuoted -Value $RepositoryUrl
$branchLiteral = ConvertTo-ShellSingleQuoted -Value $Branch
$presetLiteral = ConvertTo-ShellSingleQuoted -Value $presetArgument
$remoteScript = @"
set -eu
export PATH="/opt/homebrew/bin:/usr/local/bin:`$HOME/tools/bin:`$PATH"
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
remote_dir=$remoteDirectoryLiteral
repository_url=$repositoryLiteral
branch_name=$branchLiteral
presets=$presetLiteral
case "$remote_dir" in
"~/"*) remote_dir="$HOME/${remote_dir#~/}" ;;
esac
mkdir -p "`$(dirname "`$remote_dir")"
if [ ! -d "`$remote_dir/.git" ]; then
git clone "`$repository_url" "`$remote_dir"
fi
cd "`$remote_dir"
git fetch origin
git checkout "`$branch_name"
git pull --ff-only origin "`$branch_name"
git submodule update --init --recursive \
libs/tinyxml2 \
libs/glm \
libs/stb/stb \
libs/yoga \
libs/poly2tri \
libs/base64 \
libs/sqlite3 \
libs/nanort \
libs/hash-library \
libs/fmt \
libs/glad \
libs/tinyfiledialogs
mkdir -p out/logs
log="out/logs/apple-platform-build-`$(date +%Y%m%d-%H%M%S).log"
set +e
sh ./scripts/automation/platform-build.sh "`$presets" > "`$log" 2>&1
exit_code=`$?
set -e
printf '{"command":"apple-remote-build","host":"%s","branch":"%s","presets":"%s","log":"%s","exitCode":%s}\n' \
"`$(hostname)" "`$branch_name" "`$presets" "`$log" "`$exit_code"
tail -n 80 "`$log"
exit "`$exit_code"
"@
$remoteScript | & ssh -o BatchMode=yes $HostName "sh -s"
exit $LASTEXITCODE