51 lines
1.5 KiB
YAML
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
|