Skip to content

[infra] select the evaluation suite per pipeline - #153

Merged
vikuznetsov-nvidia merged 3 commits into
mainfrom
vikuznetsov/eval-suite-ci
Sep 8, 2026
Merged

[infra] select the evaluation suite per pipeline#153
vikuznetsov-nvidia merged 3 commits into
mainfrom
vikuznetsov/eval-suite-ci

Conversation

@vikuznetsov-nvidia

@vikuznetsov-nvidia vikuznetsov-nvidia commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

The suite mechanism merged in #146 but no workflow chose a suite, so an unset EVAL_SUITE left every job evaluating every record.

Pick one per pipeline: nightly runs full, pre-merge runs smoke. Forward the variable into the two containerised eval steps; the third step runs eval_cuvslam_in_docker.sh on the host and inherits it from the workflow environment.

Nothing changes yet. Both suites select complete KITTI and EuRoC, so the first behavioral difference arrives with the first full-only dataset, which is what this makes possible: without it, marking a dataset full-only would have no effect and pre-merge would keep paying for nightly's coverage.

PR KPI values stay comparable to the nightly history this job diffs against, because a dataset in both suites keeps one reporter config and therefore one KPI prefix.

Timeouts are unchanged. A nightly x86 job measures about 30 minutes against a 120 minute budget, and smoke equals full today, so there is nothing to re-measure until a large corpus is enabled.

Summary by CodeRabbit

  • Chores
    • Configured nightly evaluations to use the full evaluation suite.
    • Configured pull request verification to use the smoke evaluation suite.
    • Ensured evaluation and dataset preparation steps consistently receive the selected suite configuration.
    • Improved consistency between scheduled and pull request validation runs by applying the appropriate evaluation scope throughout each workflow.

The suite mechanism merged in #146 but no workflow chose a suite, so an
unset EVAL_SUITE left every job evaluating every record.

Pick one per pipeline: nightly runs full, pre-merge runs smoke. Forward
the variable into the two containerised eval steps; the third step runs
eval_cuvslam_in_docker.sh on the host and inherits it from the workflow
environment.

Nothing changes yet. Both suites select complete KITTI and EuRoC, so the
first behavioral difference arrives with the first full-only dataset,
which is what this makes possible: without it, marking a dataset
full-only would have no effect and pre-merge would keep paying for
nightly's coverage.

PR KPI values stay comparable to the nightly history this job diffs
against, because a dataset in both suites keeps one reporter config and
therefore one KPI prefix.

Timeouts are unchanged. A nightly x86 job measures about 30 minutes
against a 120 minute budget, and smoke equals full today, so there is
nothing to re-measure until a large corpus is enabled.
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 9e43e308-74eb-40c6-9570-03eb0190a241

📥 Commits

Reviewing files that changed from the base of the PR and between 0c04d6b and a7bfa3f.

📒 Files selected for processing (2)
  • .github/workflows/nightly.yml
  • .github/workflows/pr-verify.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/pr-verify.yml

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


📝 Walkthrough

Walkthrough

The nightly workflow selects the full evaluation suite. The pull request workflow selects the smoke suite. Both workflows pass EVAL_SUITE to prerequisite and dataset-staging containers.

Changes

Evaluation suite configuration

Layer / File(s) Summary
Workflow suite selection
.github/workflows/nightly.yml, .github/workflows/pr-verify.yml
Nightly evaluation uses EVAL_SUITE=full. Pull request verification uses EVAL_SUITE=smoke.
Evaluation container propagation
.github/workflows/nightly.yml, .github/workflows/pr-verify.yml
Prerequisite and dataset-staging Docker commands receive EVAL_SUITE.

Priority: ⬇️ Low — Defer this workflow-only change because it selects smoke versus full evaluation suites without changing current datasets, behavior, or timeouts.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to c9e95

Nightly runs now select the full evaluation suite while pull-request verification selects smoke; setup containers receive the same selection, with no remaining current-head risk identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: selecting the evaluation suite for each pipeline.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch vikuznetsov/eval-suite-ci

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Test Results

Status Platform Language Total Passed Failed Errors Skipped
Orin C++ 17 17 0 0 0
Orin Python 74 73 0 0 1
Thor C++ 17 17 0 0 0
Thor Python 74 73 0 0 1
x86_64 C++ 17 17 0 0 0
x86_64 Python 74 73 0 0 1

cuVSLAM Evaluation KPIs

Config Dataset ATE, % ARE, º/m Kabsch Losts diff ATE, % diff ARE, º/m diff Kabsch diff Losts FPS, Hz
x86_64-cuda12.6.3-ubuntu24.04 EUROC-VIO_ODOM 1.6516 0.1497 0.0943 0 0.0017 0.0002 -0.0016 0 120.7
x86_64-cuda12.6.3-ubuntu24.04 EUROC-VIO_SLAM 1.7920 0.1927 0.0595 0 0.0071 -0.0001 0.0000 0 100.6
x86_64-cuda12.6.3-ubuntu24.04 KITTI-STEREO_ODOM 0.8158 0.0023 2.8125 0 0.0043 0.0000 0.0071 0 249.0
x86_64-cuda12.6.3-ubuntu24.04 KITTI-STEREO_SLAM 0.7305 0.0020 1.8852 0 0.0034 0.0000 -0.0136 0 177.4

Artifacts

@vikuznetsov-nvidia
vikuznetsov-nvidia enabled auto-merge (squash) September 8, 2026 11:13
The pr-verify note also claimed smoke and full select the same records,
which stops being true as soon as a full-only dataset is enabled. The
constraint it was really guarding, that a dataset in both suites must
keep one KPI prefix, belongs next to the registry entry that could break
it rather than here.
@vikuznetsov-nvidia
vikuznetsov-nvidia merged commit d6c5214 into main Sep 8, 2026
7 checks passed
@vikuznetsov-nvidia
vikuznetsov-nvidia deleted the vikuznetsov/eval-suite-ci branch September 8, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants