Files
logistics_support_tool/scripts/release.ps1

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)"