# action.yml name: 'run-fuzzers' description: 'Runs fuzz target binaries for a specified length of time.' inputs: oss-fuzz-project-name: description: 'The OSS-Fuzz project name.' required: true language: description: 'Programming language project is written in.' required: false default: 'c++' fuzz-seconds: description: 'The total time allotted for fuzzing in seconds.' required: true default: 600 dry-run: description: 'If set, run the action without actually reporting a failure.' default: false sanitizer: description: 'The sanitizer to run the fuzzers with.' default: 'address' mode: description: | The mode to run the fuzzers with ("code-change", "batch", "coverage", or "prune"). "code-change" is for fuzzing a pull request or commit. "batch" is for non-interactive fuzzing of an entire project. "coverage" is for coverage generation. "prune" is for corpus pruning. required: false default: 'code-change' github-token: description: | Token for GitHub API. WARNING: THIS SHOULD NOT BE USED IN PRODUCTION YET You should use "secrets.GITHUB_TOKEN" in your workflow file, do not hardcode the token. TODO(https://github.com/google/oss-fuzz/pull/5841#discussion_r639393361): Document locking this down. required: false report-unreproducible-crashes: description: 'If True, then unreproducible crashes will be reported.' required: false default: False minimize-crashes: description: 'If True, reportable crashes will be minimized.' required: false default: False runs: using: 'docker' image: '../../../run_fuzzers.Dockerfile' env: OSS_FUZZ_PROJECT_NAME: ${{ inputs.oss-fuzz-project-name }} LANGUAGE: ${{ inputs.language }} FUZZ_SECONDS: ${{ inputs.fuzz-seconds }} DRY_RUN: ${{ inputs.dry-run}} SANITIZER: ${{ inputs.sanitizer }} MODE: ${{ inputs.mode }} GITHUB_TOKEN: ${{ inputs.github-token }} LOW_DISK_SPACE: 'True' REPORT_UNREPRODUCIBLE_CRASHES: ${{ inputs.report-unreproducible-crashes }} MINIMIZE_CRASHES: ${{ inputs.minimize-crashes }} CIFUZZ_DEBUG: 'True' CFL_PLATFORM: 'github'