Files
platform-templates/devsecops-snippets/syft-sbom-step/action.yml
T

51 lines
1.5 KiB
YAML

name: "Syft — SBOM"
description: >-
Genera el SBOM (CycloneDX + SPDX) de la imagen que ya pasó el gate de
CRITICAL de Trivy — describe exactamente qué paquetes (y en qué
versión) quedaron adentro. CycloneDX es el formato más usado por
herramientas de consulta/alertas de CVEs nuevas.
inputs:
image_ref:
description: "Referencia completa imagen:tag a describir."
required: true
artifact_suffix:
description: "Sufijo para el nombre del artifact publicado (ej. la versión)."
required: true
syft_version:
description: "Versión de Syft a instalar."
required: false
default: "1.51.0"
runs:
using: composite
steps:
- name: Instalar Syft
shell: bash
run: |
set -euo pipefail
curl -sSfL \
"https://github.com/anchore/syft/releases/download/v${{ inputs.syft_version }}/syft_${{ inputs.syft_version }}_linux_amd64.tar.gz" \
-o /tmp/syft.tar.gz
tar -xzf /tmp/syft.tar.gz -C /tmp syft
chmod +x /tmp/syft
/tmp/syft version
- name: Generar SBOM (Syft)
shell: bash
run: |
set -euo pipefail
/tmp/syft "${{ inputs.image_ref }}" \
-o cyclonedx-json=sbom.cdx.json \
-o spdx-json=sbom.spdx.json
- name: Publicar SBOM
if: always()
uses: actions/upload-artifact@v3
with:
name: sbom-${{ inputs.artifact_suffix }}
path: |
sbom.cdx.json
sbom.spdx.json
if-no-files-found: ignore