versión 1.2.0: despliegue como servicio de Windows con NSSM
- deploy/: scripts de PowerShell para instalar el servicio (cuenta de servicio con acceso a la ruta de red, reinicio automático, parada con Ctrl+C, rotación de la salida, PYTHONUTF8), actualizar a una versión etiquetada o volver a una anterior, y desinstalar. - docs/despliegue_windows.md: requisitos, instalación, operación, rollback y problemas frecuentes. - tools/verificar_conexiones.py: comprueba .env, Graph, SAP, HANA y la ruta de red sin modificar nada. - CHANGELOG.md, README e inventario; pyproject.toml pasa a 1.2.0. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f01f21b1c3
commit
cdcecc2b56
9 files changed
+416
-15
No files matched your search
@@ -0,0 +1,40 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Actualiza el proyecto a una versión (etiqueta de git) y reinicia el servicio. Sirve también para volver a una
|
||||
versión anterior (rollback). Ejecutar en PowerShell como administrador.
|
||||
|
||||
.EXAMPLE
|
||||
.\deploy\actualizar.ps1 -Version v1.2.0
|
||||
.\deploy\actualizar.ps1 -Version v1.1.0 # volver a la anterior
|
||||
#>
|
||||
param(
|
||||
[Parameter(Mandatory = $true)][string]$Version,
|
||||
[string]$Nombre = "descarga_factura_transporte",
|
||||
[string]$Nssm = "nssm"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$Proyecto = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
||||
Set-Location $Proyecto
|
||||
|
||||
if (git status --porcelain --untracked-files=no) {
|
||||
throw "Hay cambios locales sin guardar en $Proyecto. Revíselos (git status) antes de actualizar."
|
||||
}
|
||||
|
||||
function Comprobar($paso) { if ($LASTEXITCODE -ne 0) { throw "Falló: $paso (código $LASTEXITCODE)" } }
|
||||
|
||||
git fetch --tags origin
|
||||
Comprobar "git fetch"
|
||||
if (-not (git tag --list $Version)) { throw "No existe la etiqueta $Version. Etiquetas disponibles: $(git tag --list | Out-String)" }
|
||||
|
||||
& $Nssm stop $Nombre confirm | Out-Null
|
||||
try {
|
||||
git checkout $Version
|
||||
Comprobar "git checkout $Version"
|
||||
& (Join-Path $Proyecto "venv\Scripts\python.exe") -m pip install -r requirements.txt
|
||||
Comprobar "pip install"
|
||||
} finally {
|
||||
& $Nssm start $Nombre | Out-Null # arranca siempre: si algo falló, vuelve a levantar lo que había
|
||||
}
|
||||
Write-Host "Servicio '$Nombre' en la versión $Version."
|
||||
Write-Host "Compruebe la versión en el log: Select-String 'versión' logs\descarga_factura_transporte.log | Select-Object -Last 1"
|
||||
Reference in new issue
Block a user