From c1775e1857efd6b9e5b31ae598063aab3ecf5be0 Mon Sep 17 00:00:00 2001 From: elpatron Date: Fri, 19 Jun 2026 17:42:47 +0200 Subject: [PATCH] Remove PowerShell deploy script and mark deploy.sh as executable. Co-authored-by: Cursor --- scripts/deploy.ps1 | 103 --------------------------------------------- scripts/deploy.sh | 0 2 files changed, 103 deletions(-) delete mode 100644 scripts/deploy.ps1 mode change 100644 => 100755 scripts/deploy.sh diff --git a/scripts/deploy.ps1 b/scripts/deploy.ps1 deleted file mode 100644 index 3b21491..0000000 --- a/scripts/deploy.ps1 +++ /dev/null @@ -1,103 +0,0 @@ -# Deploy Idle Fantasy Save Viewer to production. -# Usage (from repo root): .\scripts\deploy.ps1 - -$ErrorActionPreference = "Stop" - -function Write-Step([string]$Message) { - Write-Host "==> $Message" -} - -function Fail([string]$Message) { - Write-Error $Message - exit 1 -} - -function Invoke-RemoteDeploy { - param( - [string[]]$SshOptions, - [string]$TargetHost, - [string]$ScriptPath, - [string]$RemoteDir, - [string]$Branch, - [string]$ExpectedSha, - [string]$HealthUrl, - [int]$HealthRetries, - [int]$HealthInterval - ) - - if (-not (Get-Command scp -ErrorAction SilentlyContinue)) { - Fail "scp not found. Install OpenSSH client or use Git Bash with scripts/deploy.sh" - } - - $remoteScript = "/tmp/if-viewer-deploy-$PID.sh" - $quoted = @( - $RemoteDir, - $Branch, - $ExpectedSha, - $HealthUrl, - "$HealthRetries", - "$HealthInterval" - ) | ForEach-Object { "'" + ($_ -replace "'", "'\\''") + "'" } - - $remoteArgs = $quoted -join " " - $remoteRun = "bash $remoteScript $remoteArgs; rc=`$?; rm -f $remoteScript; exit `$rc" - - & scp @SshOptions $ScriptPath "${TargetHost}:${remoteScript}" - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - - & ssh @SshOptions $TargetHost $remoteRun - return $LASTEXITCODE -} - -$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path -$RemoteScriptPath = Join-Path $ScriptDir "deploy-remote.sh" - -$RepoRoot = git rev-parse --show-toplevel 2>$null -if (-not $RepoRoot) { Fail "Not inside a git repository." } -Set-Location $RepoRoot - -# On Windows use native OpenSSH (same client as interactive "ssh" in PowerShell). -# Git Bash ships its own ssh/known_hosts and breaks host key verification. -$OnWindows = ($env:OS -match "Windows") -or ($PSVersionTable.PSPlatform -eq "Win32NT") -if (-not $OnWindows -and (Get-Command bash -ErrorAction SilentlyContinue)) { - & bash "./scripts/deploy.sh" - exit $LASTEXITCODE -} - -$DeployHost = if ($env:DEPLOY_HOST) { $env:DEPLOY_HOST } else { "root@10.0.0.5" } -$DeployDir = if ($env:DEPLOY_DIR) { $env:DEPLOY_DIR } else { "/opt/apps/Idle-Fantasy-Save-Viewer" } -$HealthUrl = if ($env:DEPLOY_HEALTH_URL) { $env:DEPLOY_HEALTH_URL } else { "http://127.0.0.1:5000/" } -$HealthRetries = if ($env:DEPLOY_HEALTH_RETRIES) { [int]$env:DEPLOY_HEALTH_RETRIES } else { 20 } -$HealthInterval = if ($env:DEPLOY_HEALTH_INTERVAL) { [int]$env:DEPLOY_HEALTH_INTERVAL } else { 2 } -$SshOpts = @("-o", "BatchMode=yes", "-o", "StrictHostKeyChecking=accept-new") - -$Branch = git rev-parse --abbrev-ref HEAD -if ($Branch -eq "HEAD") { Fail "Detached HEAD - checkout a branch before deploying." } - -$Status = git status --porcelain -if ($Status) { Fail "Working tree is not clean. Commit or stash changes before deploying." } - -$Upstream = git rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>$null -if (-not $Upstream) { Fail "Branch '$Branch' has no upstream. Run: git push -u origin $Branch" } - -$LocalSha = git rev-parse HEAD -Write-Step "Local branch: $Branch ($LocalSha)" -Write-Step "Pushing $Branch to origin..." -git push origin $Branch -if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - -Write-Step "Deploying to ${DeployHost}:${DeployDir}" - -$exitCode = Invoke-RemoteDeploy ` - -SshOptions $SshOpts ` - -TargetHost $DeployHost ` - -ScriptPath $RemoteScriptPath ` - -RemoteDir $DeployDir ` - -Branch $Branch ` - -ExpectedSha $LocalSha ` - -HealthUrl $HealthUrl ` - -HealthRetries $HealthRetries ` - -HealthInterval $HealthInterval -if ($exitCode -ne 0) { exit $exitCode } - -Write-Step "Deployment finished successfully." diff --git a/scripts/deploy.sh b/scripts/deploy.sh old mode 100644 new mode 100755