Files
mengyamonitor/mengyamonitor-backend-client/build_linux.ps1
2026-05-16 19:03:34 +08:00

41 lines
1.3 KiB
PowerShell

# Cross-compile Linux agent (amd64 + arm64). Same as build_linux.sh.
# Usage: cd mengyamonitor-backend-client; .\build_linux.ps1
$ErrorActionPreference = "Stop"
$Root = $PSScriptRoot
Set-Location $Root
$name = if ($env:BINARY_NAME) { $env:BINARY_NAME } else { "mengyamonitor-agent" }
$out = if ($env:OUT_DIR) { $env:OUT_DIR } else { "dist" }
New-Item -ItemType Directory -Force -Path (Join-Path $out "linux_amd64"), (Join-Path $out "linux_arm64") | Out-Null
$env:CGO_ENABLED = "0"
Write-Host "==> linux/amd64 -> $out/linux_amd64/$name"
$env:GOOS = "linux"
$env:GOARCH = "amd64"
try {
$destAmd = Join-Path (Join-Path $out "linux_amd64") $name
go build -trimpath -ldflags="-s -w" -o $destAmd .
}
finally {
Remove-Item Env:GOOS, Env:GOARCH -ErrorAction SilentlyContinue
}
Write-Host "==> linux/arm64 -> $out/linux_arm64/$name"
$env:GOOS = "linux"
$env:GOARCH = "arm64"
try {
$destArm = Join-Path (Join-Path $out "linux_arm64") $name
go build -trimpath -ldflags="-s -w" -o $destArm .
}
finally {
Remove-Item Env:GOOS, Env:GOARCH -ErrorAction SilentlyContinue
}
Write-Host "Done."
$p1 = Join-Path (Join-Path $out "linux_amd64") $name
$p2 = Join-Path (Join-Path $out "linux_arm64") $name
Get-Item -LiteralPath $p1, $p2 | Format-Table -Property FullName, Length