Subida a producción
This commit is contained in:
parent
b8e250e417
commit
20f09c3b5e
@ -19,7 +19,7 @@ Mode = Literal["factuges", "verifactu", "all"]
|
|||||||
|
|
||||||
def run_module(module: str) -> None:
|
def run_module(module: str) -> None:
|
||||||
"""Lanza un módulo Python como subproceso y falla en caso de error."""
|
"""Lanza un módulo Python como subproceso y falla en caso de error."""
|
||||||
subprocess.run([sys.executable, "-m", module], check=True)
|
subprocess.run([sys.executable, "-m", module], check=False)
|
||||||
|
|
||||||
|
|
||||||
def resolve_mode(arg_mode: Optional[str]) -> Mode:
|
def resolve_mode(arg_mode: Optional[str]) -> Mode:
|
||||||
@ -59,7 +59,7 @@ def main() -> None:
|
|||||||
run_module("app.sync_verifactu_main")
|
run_module("app.sync_verifactu_main")
|
||||||
else: # mode == "all"
|
else: # mode == "all"
|
||||||
# Primero sincroniza FactuGES, luego Verifactu.
|
# Primero sincroniza FactuGES, luego Verifactu.
|
||||||
# Si la primera falla, el proceso termina por el check=True.
|
# Si la primera falla, el proceso no termina por el check=False.
|
||||||
run_module("app.sync_factuges_main")
|
run_module("app.sync_factuges_main")
|
||||||
run_module("app.sync_verifactu_main")
|
run_module("app.sync_verifactu_main")
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
# app/logger.py
|
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@ -49,9 +47,9 @@ def create_logger(
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
# 2) Handler de fichero (solo prod)
|
# 2) Handler de fichero (solo prod)
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
environment = os.getenv("ENV", "development").lower()
|
is_production = os.getenv("ENV") == "production"
|
||||||
|
|
||||||
if log_path and environment in ("production", "prod"):
|
if log_path and is_production:
|
||||||
p = Path(log_path)
|
p = Path(log_path)
|
||||||
|
|
||||||
# Aseguramos directorios
|
# Aseguramos directorios
|
||||||
@ -67,6 +65,19 @@ def create_logger(
|
|||||||
h_file.setFormatter(formatter)
|
h_file.setFormatter(formatter)
|
||||||
logger.addHandler(h_file)
|
logger.addHandler(h_file)
|
||||||
|
|
||||||
|
# Verificación explícita
|
||||||
|
try:
|
||||||
|
test_msg = f"Log file active at: {p}"
|
||||||
|
h_file.acquire()
|
||||||
|
h_file.stream.write(f"{test_msg}\n")
|
||||||
|
h_file.flush()
|
||||||
|
h_file.release()
|
||||||
|
|
||||||
|
logger.info(test_msg)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"ERROR: cannot write to log file {p}: {e}")
|
||||||
|
raise
|
||||||
|
|
||||||
return logger
|
return logger
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -23,13 +23,16 @@ def main():
|
|||||||
logger = create_logger(
|
logger = create_logger(
|
||||||
name="factuges-sync",
|
name="factuges-sync",
|
||||||
log_path=log_dir / "sync_factuges.log", # Solo lo genera en producción
|
log_path=log_dir / "sync_factuges.log", # Solo lo genera en producción
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger.info("")
|
||||||
logger.info("============================================================")
|
logger.info("============================================================")
|
||||||
logger.info(" FACTUGES Sync FactuGES - START ")
|
logger.info("FACTUGES Sync FactuGES - START ")
|
||||||
logger.info(" Version: %s", version)
|
logger.info("Version: %s", version)
|
||||||
logger.info(" UTC Now: %s", datetime.utcnow().isoformat())
|
logger.info("UTC Now: %s", datetime.utcnow().isoformat())
|
||||||
logger.info(" Environment: {config['ENV']}")
|
logger.info("Environment: %s", config['ENV'])
|
||||||
|
logger.info("Log: %s", log_dir / "sync_factuges.log")
|
||||||
|
|
||||||
log_config(config)
|
log_config(config)
|
||||||
|
|
||||||
@ -70,6 +73,7 @@ def main():
|
|||||||
|
|
||||||
logger.info("== END (0) ==")
|
logger.info("== END (0) ==")
|
||||||
logger.info("============================================================")
|
logger.info("============================================================")
|
||||||
|
logger.info("")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -78,6 +82,7 @@ def main():
|
|||||||
logger.error("Traceback:", exc_info=True)
|
logger.error("Traceback:", exc_info=True)
|
||||||
logger.info("== END (1) ==")
|
logger.info("== END (1) ==")
|
||||||
logger.info("============================================================")
|
logger.info("============================================================")
|
||||||
|
logger.info("")
|
||||||
|
|
||||||
if conn_mysql is not None:
|
if conn_mysql is not None:
|
||||||
conn_mysql.rollback()
|
conn_mysql.rollback()
|
||||||
|
|||||||
@ -27,10 +27,11 @@ def main():
|
|||||||
)
|
)
|
||||||
|
|
||||||
logger.info("============================================================")
|
logger.info("============================================================")
|
||||||
logger.info(" FACTUGES Sync Verifactu - START ")
|
logger.info("FACTUGES Sync Verifactu - START ")
|
||||||
logger.info(" Version: %s", version)
|
logger.info("Version: %s", version)
|
||||||
logger.info(" UTC Now: %s", datetime.utcnow().isoformat())
|
logger.info("UTC Now: %s", datetime.utcnow().isoformat())
|
||||||
logger.info(" Environment: {config['ENV']}")
|
logger.info("Environment: %s", config['ENV'])
|
||||||
|
logger.info("Log: %s", log_dir / "sync_verifactu.log")
|
||||||
|
|
||||||
log_config(config)
|
log_config(config)
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
SCRIPT_VERSION="2.0.0"
|
SCRIPT_VERSION="2.0.1"
|
||||||
|
|
||||||
# ================================================
|
# ================================================
|
||||||
# FACTUGES SYNC - Docker Build Script (Simplificado)
|
# FACTUGES SYNC - Docker Build Script (Simplificado)
|
||||||
@ -26,8 +26,10 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|||||||
PROJECT_DIR="$(realpath "${SCRIPT_DIR}/..")"
|
PROJECT_DIR="$(realpath "${SCRIPT_DIR}/..")"
|
||||||
OUT_DIR="${PROJECT_DIR}/out/${COMPANY}"
|
OUT_DIR="${PROJECT_DIR}/out/${COMPANY}"
|
||||||
|
|
||||||
|
rm -rf "$OUT_DIR"
|
||||||
mkdir -p "$OUT_DIR"
|
mkdir -p "$OUT_DIR"
|
||||||
|
|
||||||
|
|
||||||
# ---------- 3. Info ----------
|
# ---------- 3. Info ----------
|
||||||
DATE=$(date +'%Y%m%d-%H%M%S')
|
DATE=$(date +'%Y%m%d-%H%M%S')
|
||||||
ISO_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
ISO_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
@ -46,13 +48,15 @@ echo " FACTUGES SYNC Build Script v${SCRIPT_VERSION}"
|
|||||||
echo " Compañía: ${COMPANY}"
|
echo " Compañía: ${COMPANY}"
|
||||||
echo " Versión: ${IMAGE_VERSION}"
|
echo " Versión: ${IMAGE_VERSION}"
|
||||||
echo " Fecha: ${DATE}"
|
echo " Fecha: ${DATE}"
|
||||||
|
echo " Carga: ${LOAD}"
|
||||||
echo "-------------------------------------------------------"
|
echo "-------------------------------------------------------"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# ---------- 4. Build único ----------
|
# ---------- 4. Build único ----------
|
||||||
echo "📦 Construyendo imagen Docker..."
|
echo "📦 Construyendo imagen Docker..."
|
||||||
|
|
||||||
docker build --no-cache \
|
#docker build --no-cache \
|
||||||
|
docker build \
|
||||||
-t "${TAG_VERSION}" \
|
-t "${TAG_VERSION}" \
|
||||||
-t "${TAG_LATEST}" \
|
-t "${TAG_LATEST}" \
|
||||||
--build-arg COMPANY="${COMPANY}" \
|
--build-arg COMPANY="${COMPANY}" \
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = factuges-sync
|
name = factuges-sync
|
||||||
version = 0.0.25
|
version = 0.1.4
|
||||||
description = ETL job to sync data from legacy DB to MariaDB
|
description = ETL job to sync data from legacy DB to MariaDB
|
||||||
author = Rodax Software
|
author = Rodax Software
|
||||||
author_email = info@rodax-software.com
|
author_email = info@rodax-software.com
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user