diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml new file mode 100644 index 00000000000..6f6c70b39a4 --- /dev/null +++ b/.github/workflows/cifuzz.yml @@ -0,0 +1,46 @@ +name: CIFuzz + +on: + pull_request: + branches: + - main + paths: + - '.github/**' + - 'ci/**' + - 'etc/**' + - 'src/**' + - 'tests/**' + - 'cargo-*/**' + - 'gix*/**' + - '*.toml' + - Makefile + workflow_dispatch: + +jobs: + Fuzzing: + runs-on: ubuntu-latest + + permissions: + contents: none # The fuzzing actions don't use our github.token at all. + + steps: + - name: Build Fuzzers + id: build + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: gitoxide + language: rust + + - name: Run Fuzzers + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: gitoxide + language: rust + fuzz-seconds: 600 + + - name: Upload Crash + uses: actions/upload-artifact@v4 + if: failure() && steps.build.outcome == 'success' + with: + name: artifacts + path: ./out/artifacts