diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml new file mode 100644 index 00000000..9f956d5c --- /dev/null +++ b/.github/workflows/cifuzz.yml @@ -0,0 +1,40 @@ +name: CIFuzz +on: + pull_request: + paths: + - 'src/core/**/*.c' + - 'src/fe-common/core/**/*.c' + - 'src/fe-text/gui-*.c' + - 'src/irc/**/*.c' + - 'src/fe-common/irc/**/*.c' + - 'src/lib-config/**/*.c' + - 'tests/**/*.c' + - '.github/workflows/cifuzz.yml' +jobs: + Fuzzing: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + sanitizer: [address, undefined, memory] + steps: + - name: Build Fuzzers (${{ matrix.sanitizer }}) + id: build + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: 'irssi' + dry-run: false + sanitizer: ${{ matrix.sanitizer }} + - name: Run Fuzzers (${{ matrix.sanitizer }}) + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: 'irssi' + fuzz-seconds: 600 + dry-run: false + sanitizer: ${{ matrix.sanitizer }} + - name: Upload Crash + uses: actions/upload-artifact@v1 + if: failure() && steps.build.outcome == 'success' + with: + name: ${{ matrix.sanitizer }}-artifacts + path: ./out/artifacts