vibeio-http 0.4.0

High-performance HTTP server primitives for the `vibeio` runtime
Documentation
name: Nightly fuzzing

# Nightly cargo-fuzz runs for high-risk targets
on:
  schedule:
    - cron: "0 3 * * *" # daily at 03:00 UTC
  workflow_dispatch:

concurrency:
  group: fuzz
  cancel-in-progress: true

jobs:
  fuzz:
    name: Nightly fuzzers
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install system packages
        run: |
          sudo apt-get update
          sudo apt-get install -y clang lld build-essential pkg-config libclang-dev

      - name: Setup Rust nightly
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true

      - name: Install cargo-fuzz
        run: cargo install cargo-fuzz --force

      - name: Build workspace
        run: cargo +nightly build --workspace --release

      - name: Run fuzzing
        run: |
          find fuzz/fuzz_targets -name '*.rs' \
            | sed -E 's|fuzz/fuzz_targets/(.+)\.rs|cargo +nightly fuzz run \1 -- -max_total_time=1800 -workers=2|g' \
            | sh

      - name: Upload fuzz artifacts
        uses: actions/upload-artifact@v7
        with:
          name: fuzz-artifacts
          path: |
            fuzz/artifacts
            fuzz/corpus