sea-bass / pyrobosim

ROS 2 enabled 2D mobile robot simulator for behavior prototyping
https://pyrobosim.readthedocs.io/
MIT License
192 stars 29 forks source link

Containerize the non-ros testing pipeline #161

Closed eholum closed 4 months ago

eholum commented 4 months ago

Will allow us to take advantage of docker's cache for pddl builds in the base python tests, finishing off the @ibrahiminfinite's request from https://github.com/sea-bass/pyrobosim/issues/85.

I added another stage to the Dockerfile for a very, very basic non-ros build. This should keep the docker build cache until you blow up the dependencies (note this can happen when apt or pip packages get updated... so it's not bulletproof). The tests are now run in the built container.

Renamed the ROS images accordingly.

Build times for a cached build: image

I fully recognize that I have a problem...

github-actions[bot] commented 4 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
core
   __init__.py90100% 
   dynamics.py430100% 
   gazebo.py136894%55, 124, 230, 244–248
   hallway.py731086%59, 61, 63, 96, 158, 196–199, 205
   locations.py1262183%53, 55, 69, 84–85, 87, 98–99, 101–102, 119, 177, 192, 217, 227, 273, 284–285, 287–288, 312
   objects.py69494%78, 106, 137, 197
   robot.py2145872%140–141, 203, 216, 263, 277–278, 282, 286, 292–293, 295–296, 313–314, 342, 344–345, 366–367, 370–373, 376–378, 403, 407–409, 411, 413–416, 429–431, 435, 437–439, 441, 444–445, 448, 470–471, 479, 484–489, 492, 505
   room.py48197%113
   world.py57113875%146–147, 183–184, 188, 241–242, 244–245, 273–274, 325, 339–340, 342–343, 372–376, 378–380, 382–383, 386, 390–394, 397–399, 402–409, 440, 476–477, 480, 496, 526–527, 538, 541, 563–567, 569–571, 574–575, 578–581, 583, 586, 588–590, 592–594, 596, 615, 625–629, 664–665, 668–671, 688–689, 695–696, 698–699, 701, 703–704, 706, 708–709, 719–720, 723, 725, 739, 741, 748, 795, 826–827, 846–847, 851–852, 887–888, 890, 907–908, 927–931, 943–946, 958–961, 986–987, 989, 1033–1034, 1166–1167
   yaml_utils.py1061189%64, 68, 152–154, 158–159, 182–183, 207–208
gui
   __init__.py20100% 
   main.py1522980%22, 24–26, 28, 49, 178–181, 188–191, 193, 196–202, 206–208, 212–213, 219, 230
   world_canvas.py2265276%34–36, 110, 112, 114, 177, 181, 232–237, 243–244, 246–248, 253–254, 257, 260–262, 265, 270–271, 273, 300, 322–327, 330, 333–334, 349–351, 354, 371, 400, 418–419, 421–422, 464, 480, 487
manipulation
   __init__.py10100% 
   grasping.py2366174%102, 110–112, 114–122, 124, 132, 462, 464–466, 470–472, 566–568, 571–575, 583, 586–588, 593–594, 600–604, 607–614, 617–619, 628, 630, 632–638
navigation
   __init__.py40100% 
   a_star.py781087%67–72, 74–76, 165
   execution.py34488%46–47, 49–50
   occupancy_grid.py1391489%44–47, 49–53, 56, 192, 226, 234, 238
   path_planner.py26676%32, 35, 37, 41, 84, 89
   planner_base.py591771%29–35, 51, 57–59, 140–145
   prm.py725622%40–44, 46, 50–51, 54, 57–64, 66–67, 76–79, 85, 101–102, 104–109, 111–112, 115–118, 121–126, 135, 144, 154, 156, 158–159, 161, 174–178
   rrt.py172795%228, 353–354, 360–361, 363, 392
   trajectory.py500100% 
   world_graph.py70395%118, 121, 145
planning
   __init__.py30100% 
   actions.py664334%59–60, 62, 66–75, 77–80, 82–86, 88–91, 93–97, 99–100, 102–104, 150–151, 154–158
planning/pddlstream
   __init__.py00100% 
   defaultmappings.py90100% 
   planner.py40880%119–126
   primitives.py57296%68, 208
   utils.py85396%66, 99–100
utils
   __init_\.py00100% 
   general.py33487%23, 45, 51–52
   knowledge.py1391688%90–91, 100, 135–138, 145, 149–150, 163, 178, 182, 224, 240, 295
   motion.py60690%56, 67–71
   polygon.py1110100% 
   pose.py89396%79, 211, 227
   search_graph.py93396%241–243
TOTAL350159882% 

Tests Skipped Failures Errors Time
163 0 :zzz: 0 :x: 0 :fire: 2m 59s :stopwatch:
eholum commented 4 months ago

Thanks for the nits! What even is ros?