Merge pull request 'fix(ci): correr Semgrep nativo (venv) en vez de docker run anidado' (#21) from fix/build-yaml-anchor-not-supported into main
This commit was merged in pull request #21.
This commit is contained in:
+23
-12
@@ -285,6 +285,27 @@ 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
|
||||||
@@ -293,13 +314,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
SEMGREP_IMAGE="semgrep/semgrep:1.173.0"
|
/tmp/semgrep-venv/bin/semgrep scan \
|
||||||
|
|
||||||
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 \
|
||||||
@@ -309,11 +324,7 @@ jobs:
|
|||||||
"${APP_DIR}"
|
"${APP_DIR}"
|
||||||
|
|
||||||
echo "=== Resumen Semgrep ==="
|
echo "=== Resumen Semgrep ==="
|
||||||
docker run --rm \
|
/tmp/semgrep-venv/bin/python -c "
|
||||||
-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', [])
|
||||||
|
|||||||
Reference in New Issue
Block a user