Update .gitea/workflows/build.yaml
Build and Push Frontend / Construir y Subir Imagen (push) Successful in 5m13s

This commit is contained in:
2026-07-27 01:53:41 +00:00
parent 47bba80cb5
commit 097bcc1c5b
+66 -36
View File
@@ -99,56 +99,86 @@ jobs:
echo "Contexto listo:" echo "Contexto listo:"
du -sh "${APP_DIR}" du -sh "${APP_DIR}"
# Diagnóstico temprano para el hotfix de navegación. # Valida los tres componentes reales que controlan la navegación.
# No modifica el frontend, pero evita publicar silenciosamente un menú # No busca CategoryMenu.tsx porque ese archivo era código sin uso.
# que existe y no está conectado al Header/Layout real. - name: Validar navegación real del catálogo
- name: Validar integración del menú de categorías
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
MENU_FILE="$( NAVBAR_FILE="${APP_DIR}/components/layout/navbar.tsx"
find "${APP_DIR}" -type f -name 'CategoryMenu.tsx' -print -quit CATALOG_FILE="${APP_DIR}/components/catalog/catalog-client.tsx"
)" PAGE_FILE="${APP_DIR}/app/catalog/page.tsx"
if [ -z "${MENU_FILE}" ]; then for FILE in "${NAVBAR_FILE}" "${CATALOG_FILE}" "${PAGE_FILE}"; do
echo "AVISO: no se encontró CategoryMenu.tsx." if [ ! -f "${FILE}" ]; then
echo "El build continuará usando el menú actualmente integrado." echo "ERROR: no existe ${FILE}"
exit 0
fi
echo "CategoryMenu encontrado: ${MENU_FILE}"
if ! grep -Eq 'useSearchParams|URLSearchParams|window\.location\.search' "${MENU_FILE}"; then
echo "ERROR: CategoryMenu.tsx no deriva el estado activo desde la URL."
exit 1 exit 1
fi fi
done
if ! grep -q 'collection=Marvel' "${MENU_FILE}"; then echo "Validando Navbar real: ${NAVBAR_FILE}"
echo "ERROR: falta collection=Marvel para Acción y aventura."
grep -q 'useSearchParams' "${NAVBAR_FILE}" || {
echo "ERROR: navbar.tsx no usa useSearchParams."
exit 1 exit 1
fi }
if ! grep -q 'category=Mochilas' "${MENU_FILE}"; then grep -q 'currentCategory' "${NAVBAR_FILE}" || {
echo "ERROR: falta category=Mochilas." echo "ERROR: navbar.tsx no calcula currentCategory."
exit 1 exit 1
fi }
MENU_USAGE="$( grep -q 'currentCollection' "${NAVBAR_FILE}" || {
grep -Rsl --include='*.tsx' --include='*.ts' 'CategoryMenu' "${APP_DIR}/app" "${APP_DIR}/src" "${APP_DIR}/components" 2>/dev/null | echo "ERROR: navbar.tsx no calcula currentCollection."
grep -Fvx "${MENU_FILE}" |
head -n 1 ||
true
)"
if [ -z "${MENU_USAGE}" ]; then
echo "ERROR: CategoryMenu.tsx existe, pero ningún Header/Layout lo importa."
echo "Debe renderizarse <CategoryMenu /> en el encabezado que ve el usuario."
exit 1 exit 1
fi }
echo "CategoryMenu integrado desde: ${MENU_USAGE}" grep -q 'collection=Marvel' "${NAVBAR_FILE}" || {
echo "Validación del menú: OK" echo "ERROR: falta collection=Marvel en navbar.tsx."
exit 1
}
grep -q 'category=Mochilas' "${NAVBAR_FILE}" || {
echo "ERROR: falta category=Mochilas en navbar.tsx."
exit 1
}
grep -q 'aria-current={active ? "page" : undefined}' "${NAVBAR_FILE}" || {
echo "ERROR: navbar.tsx no expone correctamente el menú activo."
exit 1
}
echo "Validando sincronización del catálogo: ${CATALOG_FILE}"
grep -q 'useEffect' "${CATALOG_FILE}" || {
echo "ERROR: catalog-client.tsx no usa useEffect."
exit 1
}
grep -q 'setCategory(initialCategory' "${CATALOG_FILE}" || {
echo "ERROR: catalog-client.tsx no sincroniza initialCategory."
exit 1
}
grep -q 'setCollection(initialCollection' "${CATALOG_FILE}" || {
echo "ERROR: catalog-client.tsx no sincroniza initialCollection."
exit 1
}
grep -q 'setQuery(initialQuery' "${CATALOG_FILE}" || {
echo "ERROR: catalog-client.tsx no sincroniza initialQuery."
exit 1
}
echo "Validando remontaje por parámetros: ${PAGE_FILE}"
grep -q 'key={`${category}:${collection}:${query}:${section}`}' "${PAGE_FILE}" || {
echo "ERROR: app/catalog/page.tsx no remonta CatalogClient al cambiar la URL."
exit 1
}
echo "OK: navegación real del catálogo validada."
- name: Login en Gitea Registry - name: Login en Gitea Registry
uses: docker/login-action@v2 uses: docker/login-action@v2