Fuzz (Nightly) #33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Fuzz (Nightly) | |
| # Extended fuzzing runs on a nightly schedule. | |
| # Runs all fuzz targets for 300 seconds each to discover edge cases | |
| # that the 60-second CI smoke tests miss. | |
| on: | |
| schedule: | |
| - cron: '0 3 * * *' # 3 AM UTC daily | |
| workflow_dispatch: # Allow manual triggering | |
| permissions: | |
| contents: read | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| fuzz-extended: | |
| name: Fuzz Extended (${{ matrix.target }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| defaults: | |
| run: | |
| working-directory: crosslink | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| - fuzz_create_issue | |
| - fuzz_search | |
| - fuzz_import | |
| - fuzz_dependency_graph | |
| - fuzz_state_machine | |
| - fuzz_cli_output | |
| - fuzz_comments | |
| - fuzz_labels | |
| - fuzz_update_operations | |
| - fuzz_milestones | |
| - fuzz_subissues | |
| - fuzz_relations | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly | |
| uses: dtolnay/rust-toolchain@nightly | |
| - name: Install cargo-fuzz | |
| run: cargo install cargo-fuzz --locked | |
| - name: Cache cargo | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| crosslink/target/ | |
| crosslink/fuzz/target/ | |
| key: ${{ runner.os }}-cargo-fuzz-nightly-${{ hashFiles('crosslink/Cargo.lock') }} | |
| - name: Fuzz ${{ matrix.target }} (300s) | |
| run: cargo +nightly fuzz run ${{ matrix.target }} -- -max_total_time=300 |