Skip to content

chore(ti/licenciamiento): retira los jobs one-shot de qa y traslada el mecanismo a produccion

Rafael Bautista requested to merge ti into qa

chore(ti/licenciamiento): retira los jobs one-shot ya ejecutados en qa y traslada el mismo mecanismo a produccion

QA QUEDO CARGADO — ESTE COMMIT LEVANTA EL ANDAMIO Y LO REPONE DEL OTRO LADO

licencias_import_qa_apply corrio sobre el pipeline de qa y materializo en ti_licencias las 1,252 filas de la pestaña "Licencias". El dry-run previo reporto, y el apply confirmo:

filas en la tabla antes           0
altas                          1252
actualizaciones                   0
saltadas por origen='portal'      0
saltadas por baja logica          0
empresa cruza al catalogo      1213 de 1252

Los 39 renglones que no cruzaron (18 valores distintos: BRIOCHE, GAABRISK, HOST MX, HERGIAM CENTROS COMERCIALES, JARDIN SANTA FE, TORRE ALHENA, etc.) entraron con empresa_texto poblado y empresa_id nulo, y la vista los agrupa bajo "Sin cruce al catalogo", que es seleccionable a proposito: son curacion pendiente en /admin, no filas ocultas. La pantalla en qa.mcp.caabsa.com ya pinta datos — verificado por el usuario.

NOTA SOBRE EL CRUCE, PORQUE JUSTIFICA LA DECISION DE DISEÑO En local el mismo script cruzo 1,128 de 1,252; en QA cruzo 1,213. La diferencia de 85 filas no es un defecto: el catalogo empresas_grupo_caabsa de QA esta mas completo que el de la maquina de desarrollo, y el script resuelve el cruce EN EL ENTORNO DONDE CORRE, via services/empresas_catalogo_lookup. Esto valida haber descartado la alternativa de generar un INSERT masivo con los empresa_id de local: 85 licencias habrian quedado apuntando a la empresa equivocada, o a ninguna, sin que nada lo delatara.

QUE SE QUITA

  • licencias_import_qa_dryrun
  • licencias_import_qa_apply Su trabajo esta hecho y dejarlos vivos solo abre la puerta a que alguien re-dispare una lectura de Google contra un entorno que ya abandono la hoja.

QUE SE AGREGA, Y EN QUE DIFIERE

  • licencias_import_prod_dryrun
  • licencias_import_prod_apply Mismo patron, cuatro diferencias sustantivas: · tags mcp-prod en vez de mcp-qa — otro runner, otro host. · compose docker-compose.yml en vez de docker-compose.qa.yml. · contenedor caabsa_postgres en vez de caabsa_qa_postgres. Es el default que backend/migrations/run.sh ya asume en produccion: deploy_prod no le pasa POSTGRES_CONTAINER, a diferencia de deploy_qa, que si lo override. · acotados a $CI_COMMIT_BRANCH == "main", asi que no aparecen en pipelines de qa ni de merge request. Siguen sin la llave environment:, por lo mismo que en QA: no despliegan nada, no deben ensuciar el historial de deployments del entorno production, y omitirla los saca del gate de Protected Environments — relevante aqui, donde solo Diego mergea a main.

PASO EXTRA QUE LOS JOBS DE QA NO NECESITABAN El dry-run de produccion verifica primero si existe /app/service_account.json dentro del contenedor y lo dice explicitamente. Motivo: deploy_prod preserva ese archivo con git clean -e, pero preservar no es tener — el comentario del propio job dice "copiar UNA VEZ al server tras este merge", o sea que el service account pudo nunca haberse copiado al host de PRD. En QA si estaba y la lectura de la hoja funciono a la primera. El dry-run lleva allow_failure: true para que, si falta, truene solo y no arrastre el deploy: ese job es el canario, no un paso critico.

POR QUE EL SCRIPT NO SE BORRA EN ESTE COMMIT El plan original contemplaba retirar backend/scripts/import_licencias_sheet.py junto con los jobs de QA. No procede: main sigue en c85a6b6a (20 de agosto) y produccion todavia lee la hoja en vivo. En cuanto qa llegue a main, PRD se va a topar con ti_licencias vacia exactamente igual que QA, y va a necesitar este script. Borrarlo ahora dejaria a produccion sin con que llenar la tabla. Se elimina en el commit siguiente a la carga de PRD, junto con estos dos jobs y la etapa oneshot.

ALCANCE Un solo archivo tocado, .gitlab-ci.yml. Cero DDL, cero migraciones, cero cambios de modelo, router, servicio o frontend. La etapa oneshot se conserva porque los jobs nuevos la usan.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Merge request reports

Loading