| name: fuzzing |
| |
| # This action runs fuzzing for a brief period of time, |
| # only aginst the actual code added in the PR. |
| # It is intended a relatively quick check, |
| # to guard against code introducing crashes in the Markdown parsing, |
| # which should in principle always run against any text input. |
| # See: https://google.github.io/oss-fuzz/getting-started/continuous-integration/#how-it-works |
| # Note, to reproduce a crash locally, copy to `testcase` file` and run: `tox -e fuzz` |
| |
| on: |
| pull_request: |
| paths-ignore: ['docs/**', 'tests/**'] |
| |
| jobs: |
| Fuzzing: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Build Fuzzers |
| id: build |
| uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master |
| with: |
| oss-fuzz-project-name: 'markdown-it-py' |
| language: python |
| - name: Run Fuzzers |
| uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master |
| with: |
| oss-fuzz-project-name: 'markdown-it-py' |
| language: python |
| fuzz-seconds: 60 |
| - name: Upload Crash |
| uses: actions/upload-artifact@v4 |
| if: failure() && steps.build.outcome == 'success' |
| with: |
| name: artifacts |
| path: ./out/artifacts |