Compare commits

..
Author SHA1 Message Date
devops 1df1c3a3c1 Merge pull request 'fix(ci): quitar anchors/aliases YAML de build.yaml' (#20) from fix/build-yaml-anchor-not-supported into main
Build and Push Frontend / Construir y Subir Imagen (push) Failing after 42s
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (push) Successful in 25s
2026-08-15 04:25:51 +00:00
+12 -23
View File
@@ -285,27 +285,6 @@ jobs:
--exit-code 0 \ --exit-code 0 \
"${MANIFEST_FILE}" "${MANIFEST_FILE}"
# Instalado directo con pip (no como container aparte): el runner de
# Gitea ejecuta cada job ya dentro de un contenedor propio que habla
# con el daemon Docker del host (sibling containers) -- un
# `docker run -v "${{ github.workspace }}:/src"` desde acá intenta
# montar una ruta que solo existe DENTRO del contenedor del job, no
# en el host real, y falla con "read-only file system". Evitamos por
# completo el problema corriendo Semgrep nativo, igual que
# gitleaks/trivy/syft/cosign.
# venv en vez de "pip3 install --break-system-packages": la imagen del
# runner ya trae paquetes de Python instalados por apt (ej. PyJWT)
# sin metadata compatible con pip, y pip aborta al intentar
# reemplazarlos ("RECORD file not found"). Un venv aislado evita
# tocar los paquetes del sistema por completo.
- name: Instalar Semgrep
shell: bash
run: |
set -euo pipefail
python3 -m venv /tmp/semgrep-venv
/tmp/semgrep-venv/bin/pip install --quiet "semgrep==1.173.0"
/tmp/semgrep-venv/bin/semgrep --version
# Modo auditoría: sin --error a propósito, Semgrep siempre termina # Modo auditoría: sin --error a propósito, Semgrep siempre termina
# con exit 0 aunque reporte hallazgos. Es la primera vuelta — se # con exit 0 aunque reporte hallazgos. Es la primera vuelta — se
# revisan los resultados en conjunto antes de decidir qué reglas # revisan los resultados en conjunto antes de decidir qué reglas
@@ -314,7 +293,13 @@ jobs:
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
/tmp/semgrep-venv/bin/semgrep scan \ SEMGREP_IMAGE="semgrep/semgrep:1.173.0"
docker run --rm \
-v "${{ github.workspace }}:/src" \
-w /src \
"${SEMGREP_IMAGE}" \
semgrep scan \
--config=p/typescript \ --config=p/typescript \
--config=p/react \ --config=p/react \
--config=p/nextjs \ --config=p/nextjs \
@@ -324,7 +309,11 @@ jobs:
"${APP_DIR}" "${APP_DIR}"
echo "=== Resumen Semgrep ===" echo "=== Resumen Semgrep ==="
/tmp/semgrep-venv/bin/python -c " docker run --rm \
-v "${{ github.workspace }}:/src" \
-w /src \
"${SEMGREP_IMAGE}" \
python3 -c "
import json import json
data = json.load(open('semgrep-report.json')) data = json.load(open('semgrep-report.json'))
results = data.get('results', []) results = data.get('results', [])