mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-09-06 13:38:59 +00:00
* 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>
43 lines
1.5 KiB
YAML
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
|