mirror of
https://github.com/WeblateOrg/weblate.git
synced 2026-07-27 20:34:51 +08:00
71 lines
2.3 KiB
YAML
Vendored
71 lines
2.3 KiB
YAML
Vendored
# Copyright © Weblate contributors
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
name: ClusterFuzzLite PR Fuzzing
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
permissions:
|
|
actions: read
|
|
contents: read
|
|
|
|
jobs:
|
|
pr-fuzzing:
|
|
permissions:
|
|
actions: read
|
|
contents: read
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 40
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
sanitizer:
|
|
- address
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
- name: Build Fuzzers (${{ matrix.sanitizer }})
|
|
id: build
|
|
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
|
|
with:
|
|
language: python
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
keep-unaffected-fuzz-targets: true
|
|
sanitizer: ${{ matrix.sanitizer }}
|
|
# Optional but recommended: use a dedicated storage repository with a
|
|
# fine-grained token instead of the main repository token.
|
|
# storage-repo: https://${{ secrets.CFLITE_STORAGE_TOKEN }}@github.com/OWNER/STORAGE-REPO.git
|
|
# storage-repo-branch: main
|
|
- name: Run Fuzzers (${{ matrix.sanitizer }})
|
|
id: run
|
|
timeout-minutes: 12
|
|
uses: ./.github/actions/cflite-run-fuzzers
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
fuzz-seconds: 180
|
|
mode: code-change
|
|
sanitizer: ${{ matrix.sanitizer }}
|
|
parallel-fuzzing: true
|
|
output-sarif: true
|
|
- name: Show fuzz findings (${{ matrix.sanitizer }})
|
|
if: always() && steps.build.outcome == 'success'
|
|
run: >-
|
|
python3 -m fuzzing.findings_reporter
|
|
--mode code-change
|
|
--sanitizer "${{ matrix.sanitizer }}"
|
|
--print-report
|
|
--github-step-summary
|
|
--no-sentry
|
|
- name: Upload crash summaries artifact (${{ matrix.sanitizer }})
|
|
if: always() && steps.build.outcome == 'success'
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: cflite-pr-crash-summaries-${{ matrix.sanitizer }}
|
|
path: out/artifacts/**/*.summary
|
|
if-no-files-found: ignore
|