From 60516a9ff2d14fecdbc12bd24f27bc6e8f5af273 Mon Sep 17 00:00:00 2001 From: vincent Date: Mon, 16 Feb 2026 19:26:09 -0500 Subject: [PATCH] Add fast dev-cycle CI smoke lane with nextest profile --- .github/workflows/dev_cycle_fast.yml | 42 ++++++++++++++++++++++++++++ nextest.toml | 16 +++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/dev_cycle_fast.yml diff --git a/.github/workflows/dev_cycle_fast.yml b/.github/workflows/dev_cycle_fast.yml new file mode 100644 index 0000000..a0b2b4d --- /dev/null +++ b/.github/workflows/dev_cycle_fast.yml @@ -0,0 +1,42 @@ +name: CI Fast Dev Cycle + +on: + pull_request: + workflow_dispatch: + +jobs: + lint_and_smoke: + runs-on: ubuntu-latest + timeout-minutes: 35 + + steps: + - name: Set up Rust toolchain + uses: hecrj/setup-rust-action@v2 + with: + rust-version: stable + + - name: Check out the code + uses: actions/checkout@v4 + + - name: Install Clippy + run: rustup component add clippy + + - name: Run Clippy + run: cargo clippy --all-targets --all-features -- -D warnings + + - name: Install cargo-nextest + run: cargo install cargo-nextest --locked + + - name: Run smoke tests (fast profile) + env: + RUST_MIN_STACK: 8388608 + run: > + cargo nextest run + --profile dev-cycle + --status-level=all + --no-fail-fast + -E 'test(known_group_persistence) + | test(group_name_persistence) + | test(repo_persistence) + | test(test_rpc_service_init) + | test(test_rpc_client)' diff --git a/nextest.toml b/nextest.toml index 5d974bf..71babf6 100644 --- a/nextest.toml +++ b/nextest.toml @@ -2,11 +2,23 @@ # Veilid network tests can take several minutes due to DHT operations and network setup [profile.default] -# Set timeout to 10 minutes per test (Veilid network operations can be slow) -test-timeout = "600s" +# Set timeout budget for slow Veilid tests +slow-timeout = { period = "60s", terminate-after = 10 } # Retry flaky tests up to 3 times retries = 3 # Run tests serially to avoid Veilid network conflicts test-threads = 1 + +# Fast feedback profile for development cycles. +# This profile intentionally keeps a tighter timeout/retry budget. +[profile.dev-cycle] +slow-timeout = { period = "30s", terminate-after = 4 } +retries = 1 +test-threads = 1 + +[[profile.dev-cycle.overrides]] +filter = 'test(repo_persistence) | test(test_auto_create_repo_on_join_group)' +slow-timeout = { period = "45s", terminate-after = 4 } +retries = 2