---
name: Container Security Scan
"on":
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
security-events: write
jobs:
trivy:
name: Trivy Container Scan
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Build Docker image for scanning
run: docker build -t nsip:scan .
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25
with:
image-ref: nsip:scan
format: sarif
output: trivy-results.sarif
severity: CRITICAL,HIGH,MEDIUM
- name: Upload Trivy results to GitHub Security
uses: github/codeql-action/upload-sarif@1a818fd5f97ed0ee9a823421bd5b171add01227f if: always()
with:
sarif_file: trivy-results.sarif
category: trivy-container
- name: Generate human-readable report
uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25
with:
image-ref: nsip:scan
format: table
output: trivy-report.txt
- name: Upload scan report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a if: always()
with:
name: trivy-scan-report
path: trivy-report.txt
retention-days: 30