fix(ci): condicion de carrera en el chequeo de promocion GitOps
Build and Push Medusa / Escaneo de Secretos (Gitleaks) (push) Successful in 22s
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (push) Successful in 26s
Build and Push Docs Portal / Escaneo de Secretos (Gitleaks) (push) Successful in 28s
Build and Push Medusa / Construir y publicar Medusa (push) Successful in 17m19s
Build and Push Frontend / Construir y Subir Imagen (push) Successful in 8m23s
Build and Push Docs Portal / Construir y publicar Docs Portal (push) Successful in 6m18s
Build and Push Medusa / Escaneo de Secretos (Gitleaks) (push) Successful in 22s
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (push) Successful in 26s
Build and Push Docs Portal / Escaneo de Secretos (Gitleaks) (push) Successful in 28s
Build and Push Medusa / Construir y publicar Medusa (push) Successful in 17m19s
Build and Push Frontend / Construir y Subir Imagen (push) Successful in 8m23s
Build and Push Docs Portal / Construir y publicar Docs Portal (push) Successful in 6m18s
Con el runner corriendo 1 job a la vez (capacity: 1), cuando 2+ pipelines comparten el mismo commit disparador, el primero en terminar deja su propio commit de GitOps en main -- los siguientes veian 'main ya no es igual a mi commit' y se saltaban su propia promocion, aunque era seguro promocionar. Visto en vivo: Frontend construyo, escaneo y firmo v1.0.119 pero el manifiesto seguia en v1.0.104 (Promocion GitOps: false). Fix en los 3 workflows: git merge-base --is-ancestor en vez de comparacion exacta de SHA. Bump manual de frontend a v1.0.119 (la version que ya estaba lista, sin desplegar). Documentado el limite conocido de este fix en el playbook de la migracion. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_011FqYP3Wf1W63Qmh7qgXAAT
This commit is contained in:
1 parent
788505a1bb
commit
29021bff70
5 files changed
+83
-4
No files matched your search
@@ -489,6 +489,17 @@ jobs:
|
||||
|
||||
# Evita que una ejecución antigua actualice frontend.yaml después de que
|
||||
# ya exista un commit más reciente en main.
|
||||
#
|
||||
# merge-base --is-ancestor, no comparación exacta de SHA: cuando 2+
|
||||
# pipelines comparten el mismo commit disparador y el runner los
|
||||
# corre en serie (capacity: 1), el primero en terminar ya dejó su
|
||||
# propio commit de GitOps en main -- con comparación exacta, los
|
||||
# demás ven "main ya no es igual a mi commit" y se saltan la
|
||||
# promoción sin necesidad (visto en vivo 2026-08-17, ver
|
||||
# docs/playbooks/migracion-platform-templates-2026-08.md). Con
|
||||
# is-ancestor, mientras el commit que disparó ESTE pipeline siga
|
||||
# siendo ancestro de main, promociona igual -- solo bloquea si de
|
||||
# verdad hubo un rebase/force-push que lo descartó.
|
||||
- name: Verificar promoción segura
|
||||
id: promotion
|
||||
shell: bash
|
||||
@@ -503,7 +514,7 @@ jobs:
|
||||
echo "Commit del pipeline: ${CURRENT_SHA}"
|
||||
echo "Último commit remoto: ${REMOTE_SHA}"
|
||||
|
||||
if [ "${CURRENT_SHA}" = "${REMOTE_SHA}" ]; then
|
||||
if git merge-base --is-ancestor "${CURRENT_SHA}" origin/main; then
|
||||
echo "promote=true" >> "$GITHUB_OUTPUT"
|
||||
echo "La imagen puede promocionarse."
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user