Skip to content

Security Scan

Security Scan #9

Workflow file for this run

name: Security Scan
on:
pull_request:
branches: [main]
schedule:
- cron: "0 6 * * 1" # weekly Monday 06:00 UTC
workflow_dispatch:
permissions:
contents: read
security-events: write
jobs:
grype:
name: Grype vulnerability scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install grype
run: curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
- name: Scan repository
run: grype dir:. --config .grype.yaml --output sarif --file grype-results.sarif --fail-on high
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: grype-results.sarif
category: grype
trivy-fs:
name: Trivy filesystem scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Trivy filesystem scan
uses: aquasecurity/trivy-action@master
with:
scan-type: fs
scan-ref: .
severity: CRITICAL,HIGH
exit-code: "1"
ignore-unfixed: "true"
format: sarif
output: trivy-fs.sarif
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: trivy-fs.sarif
category: trivy-fs
trivy-config:
name: Trivy IaC misconfiguration scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan Helm chart + Docker + Terraform
uses: aquasecurity/trivy-action@master
with:
scan-type: config
scan-ref: deploy/
severity: HIGH,CRITICAL
format: sarif
output: trivy-config.sarif
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: trivy-config.sarif
category: trivy-config