diff --git a/.github/workflows/sbom.yml b/.github/workflows/sbom.yml index 45ae340..ab25cc3 100644 --- a/.github/workflows/sbom.yml +++ b/.github/workflows/sbom.yml @@ -13,6 +13,10 @@ on: description: '대상 이미지 수 상한 (0=전체). 테스트 시 예: 3' required: false default: '0' + chart: + description: '대상 차트명 (비우면 전체). manifests/helm/ 아래 디렉토리명과 일치해야 한다. 예: apisix' + required: false + default: '' pull_request: paths: - 'manifests/helm/**' @@ -94,9 +98,18 @@ jobs: fi wc -l "$OUT_DIR/images_scan.tsv" - - name: 스캔 대상 결정 (스케줄/수동=전체) + - name: 스캔 대상 결정 (스케줄/수동=전체 또는 지정 차트) if: github.event_name != 'pull_request' - run: cp "$OUT_DIR/images_final.tsv" "$OUT_DIR/images_scan.tsv" + env: + CHART: ${{ github.event.inputs.chart }} + run: | + if [ -n "$CHART" ]; then + awk -F'\t' -v c="$CHART" '$1 == c' "$OUT_DIR/images_final.tsv" > "$OUT_DIR/images_scan.tsv" + echo "차트 필터: $CHART" + else + cp "$OUT_DIR/images_final.tsv" "$OUT_DIR/images_scan.tsv" + fi + wc -l "$OUT_DIR/images_scan.tsv" - name: SBOM 생성 (CycloneDX) env: