68 lines
1.8 KiB
PowerShell
68 lines
1.8 KiB
PowerShell
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$versionFile = Join-Path $scriptDir "..\VERSION"
|
|
$env:GOOS = "windows"
|
|
$env:GOARCH = "amd64"
|
|
$keepReleases = 10
|
|
|
|
if (Test-Path $versionFile) {
|
|
$version = Get-Content $versionFile -Raw | ForEach-Object { $_.Trim() }
|
|
Write-Host "Project version: $version"
|
|
} else {
|
|
Write-Host "VERSION file not found at $versionFile"
|
|
}
|
|
|
|
Write-Host "Building release version: $version"
|
|
|
|
Write-Host "`nBuilding Go backend..."
|
|
Push-Location ./backend
|
|
|
|
go build -ldflags "-X main.version=$version" -o lst_backend.exe ./main.go
|
|
Pop-Location
|
|
|
|
Write-Host "`nBuilding frontend..."
|
|
Push-Location ./frontend
|
|
npm install
|
|
npm run build
|
|
Pop-Location
|
|
|
|
|
|
$releaseFolder = Join-Path $scriptDir "releases"
|
|
$zipName = "release-$version.zip"
|
|
$zipPath = Join-Path $releaseFolder $zipName
|
|
|
|
|
|
if (-not (Test-Path $releaseFolder)) {
|
|
New-Item -ItemType Directory -Path $releaseFolder | Out-Null
|
|
}
|
|
|
|
# Remove zip if it already exists
|
|
if (Test-Path $zipPath) {
|
|
Write-Host "Removing existing zip: $zipPath"
|
|
Remove-Item $zipPath -Force
|
|
}
|
|
|
|
# Clean up older release files (keep only newest X)
|
|
$existingZips = Get-ChildItem -Path $releaseFolder -Filter "release-*.zip" | Sort-Object LastWriteTime -Descending
|
|
|
|
if ($existingZips.Count -gt $keepReleases) {
|
|
$toRemove = $existingZips | Select-Object -Skip $keepReleases
|
|
foreach ($file in $toRemove) {
|
|
Write-Host "Deleting old release: $($file.Name)"
|
|
Remove-Item $file.FullName -Force
|
|
}
|
|
}
|
|
|
|
Write-Host "`nPackaging release: $($zipName)"
|
|
|
|
$filesToInclude = @(
|
|
"backend\lst_backend.exe",
|
|
"frontend\.nitro",
|
|
"frontend\.tanstack",
|
|
"frontend\.output",
|
|
"frontend\public",
|
|
"VERSION"
|
|
)
|
|
|
|
Compress-Archive -Path $filesToInclude -DestinationPath $zipPath
|
|
|
|
Write-Host "`nRelease package created at: $($zipPath)" |