name: Test Suite on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 VESTIGE_TEST_MOCK_EMBEDDINGS: "1" jobs: unit-tests: name: Unit Tests runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo test --workspace --lib mcp-tests: name: MCP E2E Tests runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo build --release --package vestige-mcp - run: cargo test --package vestige-e2e-tests --test mcp_protocol -- --test-threads=1 journey-tests: name: User Journey Tests runs-on: ubuntu-latest timeout-minutes: 30 needs: [unit-tests] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo test --package vestige-e2e-tests --test journey_tests -- --test-threads=1 dashboard: name: Dashboard Build runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10 - uses: actions/setup-node@v4 with: node-version: 22 - run: pnpm install --frozen-lockfile && pnpm --filter dashboard build coverage: name: Code Coverage runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: llvm-tools-preview - uses: taiki-e/install-action@cargo-llvm-cov - run: cargo llvm-cov --workspace --lcov --output-path lcov.info - uses: codecov/codecov-action@v5 with: files: lcov.info