Skip to content

ci(mergify): upgrade configuration to current format #3985

ci(mergify): upgrade configuration to current format

ci(mergify): upgrade configuration to current format #3985

# Builds and runs the fuzz target for a short amount of time. This is
# mainly to protect the fuzz target from bitrot, but hopefully will
# also help to quickly catch some bugs before the PR is merged.
name: On PRs - Linux-Ubuntu Quick Fuzz
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
pull_request:
paths-ignore:
- "*.md"
workflow_dispatch:
jobs:
Linux:
name: 'Ubuntu 24.04 - clang/libFuzzer'
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
fuzz_target: [fuzz-read-write, fuzz-read-print-write]
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install dependencies
run: |
sudo ./ci/install_dependencies.sh
- name: Build
env:
CC: clang
CXX: clang++
run: |
cmake --preset linux-sanitizers -S . -B build -DCMAKE_BUILD_TYPE=Release -DEXIV2_BUILD_FUZZ_TESTS=ON -DEXIV2_BUILD_UNIT_TESTS=OFF
cmake --build build --parallel
- name: Fuzz
run: |
cd build
mkdir corpus
LSAN_OPTIONS=suppressions=../fuzz/knownleaks.txt ./bin/${{matrix.fuzz_target}} corpus ../test/data/ -dict=../fuzz/exiv2.dict -jobs=$(nproc) -workers=$(nproc) -max_len=4096 -max_total_time=120
- uses: actions/upload-artifact@v7
with:
name: exiv2-${{ matrix.fuzz_target }}
path: |
./build/crash-*
./build/leak-*
./build/timeout-*
if-no-files-found: ignore