# Full release: prepare (version, git, build, copy) then publish (validate + upload). # Run: release.cmd param( [string]$Version = '', [switch]$Minor, [switch]$SkipGit, [switch]$SkipLinux, [switch]$NoBump, [switch]$CheckOnly ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $ToolDir = $PSScriptRoot $PrepareScript = Join-Path $ToolDir 'prepare-release.ps1' $PublishScript = Join-Path $ToolDir 'publish.ps1' if (-not (Test-Path -LiteralPath $PrepareScript)) { throw "Missing prepare-release.ps1 in $ToolDir" } if (-not (Test-Path -LiteralPath $PublishScript)) { throw "Missing publish.ps1 in $ToolDir" } Write-Host '=== TTRPG Full Release ===' -ForegroundColor Cyan Write-Host 'Step A: prepare-release' Write-Host 'Step B: publish (after prepare succeeds)' Write-Host '' $prepareArgs = @('-File', $PrepareScript) if ($Version) { $prepareArgs += '-Version', $Version } if ($Minor) { $prepareArgs += '-Minor' } if ($SkipGit) { $prepareArgs += '-SkipGit' } if ($SkipLinux) { $prepareArgs += '-SkipLinux' } if ($NoBump) { $prepareArgs += '-NoBump' } & powershell -NoProfile -ExecutionPolicy Bypass @prepareArgs if ($LASTEXITCODE -ne 0) { Write-Host '' Write-Host 'Prepare failed. Publish was not started.' -ForegroundColor Red exit $LASTEXITCODE } Write-Host '' Write-Host 'Prepare finished. Starting publish...' -ForegroundColor Green Write-Host '' $publishArgs = @('-File', $PublishScript) if ($CheckOnly) { $publishArgs += '-CheckOnly' } & powershell -NoProfile -ExecutionPolicy Bypass @publishArgs exit $LASTEXITCODE