Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4dafe9017 | ||
|
|
fed5dfc1c1 |
@@ -129,9 +129,16 @@ jobs:
|
|||||||
# Cambio 2026-09-14: todo push a main promueve a STAGING
|
# Cambio 2026-09-14: todo push a main promueve a STAGING
|
||||||
# automaticamente (workloads/ecommerce-staging), no a Produccion
|
# automaticamente (workloads/ecommerce-staging), no a Produccion
|
||||||
# directo -- decision del usuario para dejar de probar cambios en
|
# directo -- decision del usuario para dejar de probar cambios en
|
||||||
# vivo contra Prod. Promover a Produccion (workloads/ecommerce) es
|
# vivo contra Prod.
|
||||||
# una accion manual aparte, ver scripts/promote-to-production.sh.
|
# Cambio 2026-09-20: la promocion de Staging a Produccion (antes
|
||||||
|
# scripts/promote-to-production.sh, manual con confirmacion
|
||||||
|
# interactiva) ahora corre sola en este mismo job -- ver el step
|
||||||
|
# "Promover a Produccion (CD)" mas abajo, justo despues del de
|
||||||
|
# Staging. Decision explicita del usuario: cero gate humano entre
|
||||||
|
# Staging y Produccion. El script manual queda solo como
|
||||||
|
# herramienta de rollback/excepcion, ya no es el camino normal.
|
||||||
MANIFEST_FILE: workloads/ecommerce-staging/frontend/patches/deployment.yaml
|
MANIFEST_FILE: workloads/ecommerce-staging/frontend/patches/deployment.yaml
|
||||||
|
PROD_MANIFEST_FILE: workloads/ecommerce/frontend/patches/deployment.yaml
|
||||||
KUSTOMIZE_DIR: workloads/ecommerce-staging/frontend
|
KUSTOMIZE_DIR: workloads/ecommerce-staging/frontend
|
||||||
IMAGE_NAME: gitea.cruzcloud.net/devops/ecommerce-frontend
|
IMAGE_NAME: gitea.cruzcloud.net/devops/ecommerce-frontend
|
||||||
|
|
||||||
@@ -604,6 +611,48 @@ jobs:
|
|||||||
# sobrescribir commits ajenos o promocionar una versión antigua.
|
# sobrescribir commits ajenos o promocionar una versión antigua.
|
||||||
git push origin HEAD:main
|
git push origin HEAD:main
|
||||||
|
|
||||||
|
# Automatiza lo que antes era scripts/promote-to-production.sh (paso
|
||||||
|
# manual con confirmación interactiva, read -rp). Decisión del
|
||||||
|
# usuario 2026-09-20: cero pasos manuales entre Staging y
|
||||||
|
# Producción — la misma imagen que acaba de promocionar a Staging
|
||||||
|
# arriba se promueve sola a Producción, sin gate humano en el
|
||||||
|
# medio. Mismo sed/perl que el script manual (mismo MANIFEST, otro
|
||||||
|
# archivo), corriendo como un segundo commit separado justo
|
||||||
|
# después del de Staging — no se pisan en un solo commit porque
|
||||||
|
# Staging y Producción son releases conceptualmente distintos
|
||||||
|
# (permite revertir uno sin tocar el otro).
|
||||||
|
- name: Promover a Producción (CD)
|
||||||
|
if: steps.promotion.outputs.promote == 'true'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
VERSION="${{ steps.vars.outputs.VERSION }}"
|
||||||
|
|
||||||
|
git config user.name "Cristian Felipe"
|
||||||
|
git config user.email "[email protected]"
|
||||||
|
|
||||||
|
# Re-fetch: el step de Staging de arriba ya pusheó un commit a
|
||||||
|
# main en este mismo job -- sin este refresh, este checkout
|
||||||
|
# local queda un commit atrás y el push de abajo se rechaza.
|
||||||
|
git fetch origin main
|
||||||
|
git checkout -B main origin/main
|
||||||
|
|
||||||
|
sed -i -E "s|(image: ${IMAGE_NAME}:).*|\1${VERSION}|g" "${PROD_MANIFEST_FILE}"
|
||||||
|
|
||||||
|
perl -0777 -pi -e "s/(- name: APP_VERSION\n\s*value: ).*/\${1}${VERSION}/" "${PROD_MANIFEST_FILE}"
|
||||||
|
|
||||||
|
git add "${PROD_MANIFEST_FILE}"
|
||||||
|
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "Producción ya está en ${VERSION}."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
git commit -m "chore: promote ${VERSION} to production [skip ci]"
|
||||||
|
|
||||||
|
git push origin HEAD:main
|
||||||
|
|
||||||
- name: Resumen del pipeline
|
- name: Resumen del pipeline
|
||||||
if: always()
|
if: always()
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
Reference in new issue
Block a user