Release: weekly deploy
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
"thumbnails": true,
|
||||
"backupDev": true,
|
||||
"backupProd": true,
|
||||
"migrateProdSchema": false,
|
||||
"migrateProdSchema": true,
|
||||
"restoreProd": true,
|
||||
"syncImages": true,
|
||||
"dockerPublish": true,
|
||||
|
||||
@@ -20,6 +20,7 @@ Set-Location $RepoRoot
|
||||
$BannerWidth = 64
|
||||
$CompletedSteps = [System.Collections.Generic.List[string]]::new()
|
||||
$FailedStep = $null
|
||||
$script:ProdSchemaMigrated = $false
|
||||
|
||||
function Write-ReleaseBanner {
|
||||
param([bool]$Success, [string]$FailedAt = '')
|
||||
@@ -165,14 +166,12 @@ function Get-ProfileSteps {
|
||||
$base.thumbnails = $true
|
||||
$base.backupDev = $true
|
||||
$base.backupProd = $true
|
||||
$base.migrateProdSchema = $true
|
||||
$base.restoreProd = $true
|
||||
$base.syncImages = $true
|
||||
$base.dockerPublish = $true
|
||||
$base.truenasRestartPause = $true
|
||||
$base.verify = $true
|
||||
if ($SchemaChanged) {
|
||||
$base.migrateProdSchema = $true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -517,21 +516,36 @@ if (Get-StepEnabled $steps 'backupProd') {
|
||||
if (-not $ok) { Write-ReleaseBanner -Success $false -FailedAt $FailedStep; exit 1 }
|
||||
}
|
||||
|
||||
function Invoke-MigrateProdSchema {
|
||||
Assert-ProdDbTarget
|
||||
$env:DB_NAME = 'gallery_prod'
|
||||
try {
|
||||
$code = Invoke-Npm 'dev:migrate'
|
||||
if ($code -eq 0) {
|
||||
$script:ProdSchemaMigrated = $true
|
||||
}
|
||||
return $code
|
||||
} finally {
|
||||
Remove-Item Env:\DB_NAME -ErrorAction SilentlyContinue
|
||||
}
|
||||
}
|
||||
|
||||
if (Get-StepEnabled $steps 'migrateProdSchema') {
|
||||
$ok = Invoke-Step 'migrateProdSchema' {
|
||||
Assert-ProdDbTarget
|
||||
$env:DB_NAME = 'gallery_prod'
|
||||
try {
|
||||
$code = Invoke-Npm 'dev:migrate'
|
||||
return $code
|
||||
} finally {
|
||||
Remove-Item Env:\DB_NAME -ErrorAction SilentlyContinue
|
||||
}
|
||||
return (Invoke-MigrateProdSchema)
|
||||
}
|
||||
if (-not $ok) { Write-ReleaseBanner -Success $false -FailedAt $FailedStep; exit 1 }
|
||||
}
|
||||
|
||||
if (Get-StepEnabled $steps 'restoreProd') {
|
||||
if (-not $script:ProdSchemaMigrated) {
|
||||
Write-Host 'Auto-running migrateProdSchema before restoreProd (prod schema must match dev backup).' -ForegroundColor Yellow
|
||||
$ok = Invoke-Step 'migrateProdSchema' {
|
||||
return (Invoke-MigrateProdSchema)
|
||||
}
|
||||
if (-not $ok) { Write-ReleaseBanner -Success $false -FailedAt $FailedStep; exit 1 }
|
||||
}
|
||||
|
||||
$ok = Invoke-Step 'restoreProd' {
|
||||
Assert-ProdDbTarget
|
||||
if (-not $script:backupFile) {
|
||||
|
||||
Reference in New Issue
Block a user