60 lines
1.8 KiB
PowerShell
60 lines
1.8 KiB
PowerShell
|
|
Remove-Job *
|
||
|
|
|
||
|
|
$tasks = 0
|
||
|
|
$start = Get-Date
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy server for windows amd64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "windows"; $env:GOARCH = "amd64"; go build -ldflags '-w -s' -o bin/proxy_server_win_amd64.exe cmd/server/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy server for linux amd64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "linux"; $env:GOARCH = "amd64"; go build -ldflags '-w -s' -o bin/proxy_server_linux_amd64 cmd/server/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy server for linux arm64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "linux"; $env:GOARCH = "arm64"; go build -ldflags '-w -s' -o bin/proxy_server_linux_arm64 cmd/server/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy client for windows amd64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "windows"; $env:GOARCH = "amd64"; go build -ldflags '-w -s' -o bin/proxy_client_win_amd64.exe cmd/client/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy client for linux amd64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "linux"; $env:GOARCH = "amd64"; go build -ldflags '-w -s' -o bin/proxy_client_linux_amd64 cmd/client/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
$tasks++
|
||
|
|
Write-Output "building proxy client for linux arm64..."
|
||
|
|
Start-Job -ScriptBlock {
|
||
|
|
$env:GOOS = "linux"; $env:GOARCH = "arm64"; go build -ldflags '-w -s' -o bin/proxy_client_linux_arm64 cmd/client/main.go
|
||
|
|
} | Out-Null
|
||
|
|
|
||
|
|
# Wait for all jobs to complete
|
||
|
|
while ($tasks -gt 0)
|
||
|
|
{
|
||
|
|
foreach ($job in Get-Job)
|
||
|
|
{
|
||
|
|
if ($job.State -eq "Completed")
|
||
|
|
{
|
||
|
|
$tasks--
|
||
|
|
$job | Receive-Job
|
||
|
|
$job | Remove-Job
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$end = Get-Date
|
||
|
|
|
||
|
|
Write-Output "build completed"
|
||
|
|
Write-Output "time taken: $( ($end - $start).TotalSeconds ) seconds"
|
||
|
|
Write-Output "output files are in ./bin/"
|