on: push: branches: - main pull_request: env: RUSTFLAGS: -D warnings CARGO_TERM_COLOR: always concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true name: fuzz jobs: all: # Skip the Fuzzing Jobs until we make them run fast and reliably. Currently they will # always recompile the codebase for each test and that takes way too long. if: false runs-on: ubuntu-latest strategy: matrix: target: - reth-primitives - reth-db - reth-eth-wire - reth-codecs steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable with: components: llvm-tools-preview - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Install fuzzer uses: actions-rs/cargo@v1 with: command: install args: cargo-test-fuzz afl - name: Force install cargo-afl run: | cargo install --force afl cargo afl --version - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Run fuzz tests run: | ./.github/scripts/fuzz.sh ${{ matrix.target }} env: AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: 1 - name: Upload coverage data to codecov uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} files: lcov.info flags: fuzz-tests