Skip to content

Security Scan - Vulnerability Assessment #157

Security Scan - Vulnerability Assessment

Security Scan - Vulnerability Assessment #157

Workflow file for this run

name: Security Scan - Vulnerability Assessment
on:
schedule:
# Run nightly at 2 AM UTC
- cron: '0 2 * * *'
workflow_dispatch:
inputs:
image_tag:
description: 'Image tag to scan (default: latest)'
required: false
default: 'latest'
env:
IMAGE_NAME: ${{ vars.IMAGE_NAME }} # hazelcast/simulator
jobs:
security-scan:
name: Vulnerability Scan
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set image tag
id: image
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "tag=${{ github.event.inputs.image_tag }}" >> $GITHUB_OUTPUT
else
echo "tag=latest" >> $GITHUB_OUTPUT
fi
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.33.1
with:
image-ref: ${{ env.IMAGE_NAME }}:${{ steps.image.outputs.tag }}
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH,MEDIUM'
ignore-unfixed: true
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3.30.6
if: always()
with:
sarif_file: 'trivy-results.sarif'