85 lines
2.4 KiB
PowerShell
85 lines
2.4 KiB
PowerShell
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# config
|
|
$Servers = @("appserver1", "appserver2") # hostnames or IPs
|
|
$ServiceName = "MyAppService" # Windows service name (or pm2 process name logic)
|
|
$AppDir= "C:\Users\matthes01\Documents\lst_v3"
|
|
$RemoteTempZip = "C:\Windows\Temp\release.zip"
|
|
$RemoteReleasesRoot = "C:\App\releases"
|
|
$RemoteCurrent = "C:\App\current"
|
|
|
|
#--------------------------------------------------
|
|
# below this shouldnt really need to be messed with
|
|
#--------------------------------------------------
|
|
|
|
function Show-Menu {
|
|
Clear-Host
|
|
Write-Host "==============================="
|
|
Write-Host " Deployment Menu "
|
|
Write-Host "==============================="
|
|
Write-Host "1. Build app"
|
|
Write-Host "2. Deploy New Release"
|
|
Write-Host "3. Restart Service"
|
|
Write-Host "4. Exit"
|
|
Write-Host ""
|
|
}
|
|
|
|
function Select-Server {
|
|
param([string[]]$List)
|
|
for ($i = 0; $i -lt $List.Count; $i++) {
|
|
Write-Host ("{0}. {1}" -f ($i+1), $List[$i])
|
|
}
|
|
$sel = Read-Host "Select server by number"
|
|
if ($sel -match '^\d+$' -and [int]$sel -ge 1 -and [int]$sel -le $List.Count) {
|
|
return $List[[int]$sel - 1]
|
|
} else {
|
|
Write-Host "Invalid selection"
|
|
return $null
|
|
}
|
|
}
|
|
|
|
do {
|
|
Show-Menu
|
|
$choice = Read-Host "Select an option"
|
|
|
|
switch ($choice) {
|
|
"1" {
|
|
try {
|
|
Push-Location $AppDir
|
|
Write-Host "Running: npm run build in $AppDir"
|
|
npm run build
|
|
|
|
Write-Host "Build completed successfully."
|
|
Read-Host -Prompt "Press Enter to continue..."
|
|
}
|
|
catch {
|
|
Write-Host "Build failed: $_"
|
|
throw
|
|
}
|
|
finally {
|
|
Pop-Location
|
|
}
|
|
}
|
|
"2" {
|
|
$server = Select-Server -List $Servers
|
|
if ($null -ne $server) {
|
|
$zip = Read-Host "Path to zip (local)"
|
|
Deploy-ToServer -Server $server -ZipPath $zip
|
|
}
|
|
}
|
|
"3" {
|
|
Write-Host "Restart selected"
|
|
psql -h localhost -p 5433 -U adm_cowch -d lst_dev -c "SELECT count(*) FROM public.logs;"
|
|
}
|
|
"4" {
|
|
Write-Host "Exiting..."
|
|
exit
|
|
}
|
|
default {
|
|
Write-Host "Invalid selection"
|
|
Start-Sleep -Seconds 2
|
|
}
|
|
}
|
|
|
|
} while ($choice -ne "3") |