62 lines
2.5 KiB
PowerShell
62 lines
2.5 KiB
PowerShell
# build-release.ps1
|
|
# Builds a portable SINGLE-FILE release for Windows and Mac
|
|
|
|
Write-Host "Starting Portable Release Build..." -ForegroundColor Cyan
|
|
|
|
# 1. Clean previous build
|
|
if (Test-Path "Release") { Remove-Item "Release" -Recurse -Force }
|
|
if (Test-Path "backend\dist") { Remove-Item "backend\dist" -Recurse -Force }
|
|
New-Item -ItemType Directory -Force -Path "Release" | Out-Null
|
|
New-Item -ItemType Directory -Force -Path "Release\Windows" | Out-Null
|
|
New-Item -ItemType Directory -Force -Path "Release\Mac" | Out-Null
|
|
|
|
# 2. Build Frontend
|
|
Write-Host "Building Frontend (Vite)..." -ForegroundColor Yellow
|
|
$pkgManager = "pnpm"
|
|
if (-not (Get-Command "pnpm" -ErrorAction SilentlyContinue)) { $pkgManager = "npm" }
|
|
|
|
Invoke-Expression "$pkgManager install"
|
|
Invoke-Expression "$pkgManager run build"
|
|
|
|
if (-not (Test-Path "dist")) {
|
|
Write-Host "Frontend build failed: 'dist' folder not found." -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# 3. Move dist to backend/dist (for embedding)
|
|
Write-Host "Moving frontend to backend for embedding..." -ForegroundColor Cyan
|
|
Copy-Item -Path "dist" -Destination "backend\dist" -Recurse
|
|
|
|
# 4. Build Backend
|
|
Write-Host "Building Backend..." -ForegroundColor Yellow
|
|
|
|
# Windows Build
|
|
Write-Host " Windows (amd64)..." -ForegroundColor Cyan
|
|
$env:GOOS = "windows"; $env:GOARCH = "amd64"
|
|
go build -ldflags "-s -w -H=windowsgui" -o "Release\Windows\Antigravity.exe" backend/main.go
|
|
|
|
# Mac Build (Cross-compile)
|
|
Write-Host " macOS (amd64 & arm64)..." -ForegroundColor Cyan
|
|
$env:GOOS = "darwin"; $env:GOARCH = "amd64"
|
|
go build -ldflags "-s -w" -o "Release\Mac\Antigravity-Intel" backend/main.go
|
|
|
|
$env:GOARCH = "arm64"
|
|
go build -ldflags "-s -w" -o "Release\Mac\Antigravity-AppleSilicon" backend/main.go
|
|
|
|
# Cleanup backend/dist
|
|
Remove-Item "backend\dist" -Recurse -Force
|
|
|
|
# 5. Success Message & Zipping
|
|
Write-Host "Build Complete!" -ForegroundColor Green
|
|
|
|
# Zip Windows
|
|
if (Test-Path "Release\Antigravity-Windows.zip") { Remove-Item "Release\Antigravity-Windows.zip" }
|
|
Compress-Archive -Path "Release\Windows\*" -DestinationPath "Release\Antigravity-Windows.zip" -Force
|
|
Write-Host "Created Windows Zip: Release\Antigravity-Windows.zip" -ForegroundColor Green
|
|
|
|
# Zip Mac
|
|
if (Test-Path "Release\Antigravity-Mac.zip") { Remove-Item "Release\Antigravity-Mac.zip" }
|
|
Compress-Archive -Path "Release\Mac\*" -DestinationPath "Release\Antigravity-Mac.zip" -Force
|
|
Write-Host "Created Mac Zip: Release\Antigravity-Mac.zip" -ForegroundColor Green
|
|
|
|
Write-Host "Artifacts are in the 'Release' folder." -ForegroundColor White
|