Skip to content

Split build and tests to reduce numbers of URSim startups - #1910

Open
urfeex wants to merge 48 commits into
UniversalRobots:mainfrom
urfeex:refactor_ci
Open

Split build and tests to reduce numbers of URSim startups#1910
urfeex wants to merge 48 commits into
UniversalRobots:mainfrom
urfeex:refactor_ci

Conversation

@urfeex

@urfeex urfeex commented Jul 24, 2026

Copy link
Copy Markdown
Member

Our current approach towards running integration tests doesn't scale well. We're spending a lot of time setting up and tearing down simulators.

This PR aims at

  • geting more immediate feedback
  • using less test resources in total
  • being able to run tests on more target platforms

Note

Medium Risk
Changes how CI runs and how integration tests assume URSim lifecycle (shared instance + dashboard resets), but scope is mostly CI and test harness with documented matrix behavior; no production driver runtime path changes.

Overview
CI is split so one industrial_ci build compiles the workspace, runs non-URSim tests (colcon test with ctest -LE ursim), caches the workspace, and publishes the committed ICI Docker image. Three parallel integration jobs restore that workspace, load the same image, start a single URSim per matrix row (ur30/latest, ur15/10.12.0, ur10/3.15.8), then run labelled integration tests against that shared simulator.

Shared-URSim tests are tagged ursim in CMake; power-cycle / reset_ursim_state cases also get dashboard_g5, which PolyScope X jobs skip via ctest -L ursim -LE dashboard_g5. Launch helpers no longer spawn URSim per test—they expect UR_CI_ROBOT_IP / UR_CI_UR_TYPE and use wait_robot_booted.py (dashboard or Robot API) instead of only the dashboard wait script. reset_ursim_state and detect_polyscope_family centralize cleanup and version-specific skips (e.g. dashboard_client.py).

The in-repo .github/dockerursim image stack is removed; CI uses start_ursim.sh with versioned program storage under ursim_storage. ci_status.md documents the two-phase layout and local reproduction.

Reviewed by Cursor Bugbot for commit 9c74ea1. Bugbot is set up for automated code reviews on this repo. Configure here.

@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 6.77%. Comparing base (1b121b7) to head (9c74ea1).
⚠️ Report is 613 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff            @@
##            main   #1910      +/-   ##
========================================
+ Coverage   3.59%   6.77%   +3.18%     
========================================
  Files         13      39      +26     
  Lines        947    4800    +3853     
  Branches     152     560     +408     
========================================
+ Hits          34     325     +291     
- Misses       843    4467    +3624     
+ Partials      70       8      -62     
Flag Coverage Δ
unittests 6.77% <ø> (+3.18%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@urfeex
urfeex requested a review from a team August 7, 2026 05:40
@urfeex urfeex added the CI label Aug 7, 2026
@urfeex
urfeex marked this pull request as ready for review August 7, 2026 05:41

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

Reviewed by Cursor Bugbot for commit 96a3280. Configure here.

Comment thread .github/workflows/reusable_ici_build.yml Outdated
@urfeex
urfeex requested a review from urrsk August 7, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants