support connection migration #62
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: Rust CI with Miri | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| test: | |
| name: Run Clippy and Integration Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| # Step 1: Checkout code | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| # Step 2: Set up Rust toolchain | |
| - name: Set up Rust toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| # Step 3: Install Clippy | |
| - name: Install Clippy | |
| run: rustup component add clippy | |
| # Step 4: Run Clippy (Lint checks) | |
| - name: Run Clippy | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| # Step 5: Run Integration Tests | |
| - name: Run Integration Tests | |
| run: PRINT_TO_STDOUT=1 cargo test -p feather-quic-integration-tests -- --test-threads=1 | |
| miri: | |
| name: Run Miri Memory Safety Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| # Only run on main branch and PRs to main | |
| if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request' | |
| steps: | |
| # Step 1: Checkout code | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| # Step 2: Set up Rust nightly toolchain | |
| - name: Set up Rust nightly toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: nightly | |
| override: true | |
| # Step 3: Install Miri | |
| - name: Install Miri | |
| run: | | |
| rustup component add miri | |
| rustup component add rust-src | |
| # Step 4: Setup Miri | |
| - name: Setup Miri | |
| run: cargo miri setup | |
| # Step 5: Run Miri tests with optimizations | |
| - name: Run Miri Tests | |
| run: | | |
| # Run core tests with reduced parallelism and timeout | |
| cargo miri test -p feather-quic-core --no-default-features -- --test-threads=1 | |
| # Run doc tests separately with timeout | |
| timeout 300 cargo miri test -p feather-quic-core --doc --no-default-features |