aboutsummaryrefslogtreecommitdiff
path: root/infra/cifuzz/actions/run_fuzzers/action.yml
blob: d1c03c833a0c8ace5de2c1fa95c86ba045259768 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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'
  build-integration-path:
    description: "The path to the the project's build integration."
    required: false
  run-fuzzers-mode:
    description: |
      The mode to run the fuzzers with ("ci" or "batch").
      "ci" is for fuzzing a pull request or commit.
      "batch" is for non-interactive fuzzing of an entire project.
      "batch" is in alpha and should not be used in production.
    required: false
    default: 'ci'
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 }}
    RUN_FUZZERS_MODE: ${{ inputs.run-fuzzers-mode }}
    # TODO(metzman): Even though this param is used for building, it's needed
    # for running because we use it to distinguish OSS-Fuzz from non-OSS-Fuzz.
    # We should do something explicit instead.
    BUILD_INTEGRATION_PATH: ${{ inputs.build-integration-path }}
    LOW_DISK_SPACE: 'True'