name: Fuzz Test description: 'Run one or more fuzz targets against the prepared service' inputs: targets: description: "Newline-separated fuzz targets to test" required: true group: description: "Stable identifier for this group of fuzz targets" required: true max-total-time: description: "Maximum libFuzzer runtime per target in seconds" required: true unstable: default: 'false' description: "Enable the unstable feature" fail-fast: default: 'true' description: "Stop this group after the first failed target" collect-cluster-artifacts: default: 'false' description: "Collect Kind, Kubernetes, and monitor artifacts on target failure" artifact-root: default: '/tmp/greptime-fuzz-artifacts' description: "Directory that stores target-scoped diagnostic artifacts" prebuilt-binaries-dir: default: '' description: "Directory containing prebuilt fuzz target executables" runs: using: composite steps: - name: Run Fuzz Tests shell: bash env: FUZZ_TARGETS: ${{ inputs.targets }} FUZZ_GROUP: ${{ inputs.group }} FUZZ_MAX_TOTAL_TIME: ${{ inputs.max-total-time }} FUZZ_UNSTABLE: ${{ inputs.unstable }} FUZZ_FAIL_FAST: ${{ inputs.fail-fast }} FUZZ_COLLECT_CLUSTER_ARTIFACTS: ${{ inputs.collect-cluster-artifacts }} FUZZ_ARTIFACT_ROOT: ${{ inputs.artifact-root }} FUZZ_BIN_DIR: ${{ inputs.prebuilt-binaries-dir }} run: .github/scripts/run-fuzz-targets.sh