Files
greptimedb/.github/actions/fuzz-test/action.yaml
T
Weny Xu a6107fbe3d ci: optimize fuzz and split workflows (#8710)
* ci: batch fuzz targets in GitHub Actions

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: improve fuzz test observability

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix(ci): preserve fuzz setup failure artifacts

Signed-off-by: WenyXu <wenymedia@gmail.com>

* test(ci): keep fuzz mock output in logs

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: optimize fuzz worker cache

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: warm fuzz target binaries

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: isolate fuzz workflow

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: centralize fuzz target preparation

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: split general workflows

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: streamline docs required checks

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix: transfer fuzz targets as artifacts

Signed-off-by: WenyXu <wenymedia@gmail.com>

* fix: preserve fuzz binary permissions

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: streamline fuzz workers

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: cache PR build dependencies

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: retain main build cache policy

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: address fuzz review feedback

Signed-off-by: WenyXu <wenymedia@gmail.com>

---------

Signed-off-by: WenyXu <wenymedia@gmail.com>
2026-08-03 07:58:29 +00:00

43 lines
1.5 KiB
YAML

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