# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: OSS-Fuzz CI Fuzz Test
on:
  push:
    branches:
      - master
  pull_request:

jobs:
  fuzzing:
    name: Brief run of OSS-Fuzz fuzzing
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
    - name: Build fuzzers
      id: build
      uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
      with:
        oss-fuzz-project-name: 'bazel-rules-fuzzing-test'
        dry-run: false
    - name: Run fuzzers
      uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
      with:
        oss-fuzz-project-name: 'bazel-rules-fuzzing-test'
        fuzz-seconds: 60
        dry-run: false
    - name: Upload crashes
      uses: actions/upload-artifact@v1
      if: failure() && steps.build.outcome == 'success'
      with:
        name: artifacts
        path: ./out/artifacts
