@@ -126,6 +126,9 @@ _commands:
126126 packages_skip_regex :
127127 default : " "
128128 type : string
129+ packages_select :
130+ default : " "
131+ type : string
129132 restore :
130133 default : true
131134 type : boolean
@@ -192,6 +195,19 @@ _commands:
192195 $BUILD_INVALID \
193196 | xargs)
194197 fi
198+
199+ # If packages_select is specified, filter BUILD_PACKAGES
200+ if [ -n "<< parameters.packages_select >>" ]; then
201+ SELECTED_PACKAGES="<< parameters.packages_select >>"
202+ if [ -n "$BUILD_PACKAGES" ]; then
203+ # Keep only packages that are in both lists
204+ BUILD_PACKAGES=$(echo "$BUILD_PACKAGES" | tr ' ' '\n' | \
205+ grep -F -x -f <(echo "$SELECTED_PACKAGES" | tr ' ' '\n') | \
206+ xargs || echo "$SELECTED_PACKAGES")
207+ else
208+ BUILD_PACKAGES="$SELECTED_PACKAGES"
209+ fi
210+ fi
195211 echo BUILD_PACKAGES: $BUILD_PACKAGES
196212
197213 colcon clean packages --yes \
@@ -389,6 +405,7 @@ _steps:
389405 setup_workspace :
390406 << : *setup_workspace_overlay
391407 packages_skip_regex : << parameters.packages_skip_regex >>
408+ packages_select : << parameters.packages_select >>
392409 restore_overlay_workspace : &restore_overlay_workspace
393410 setup_workspace :
394411 << : *setup_workspace_overlay
@@ -439,6 +456,9 @@ commands:
439456 parameters :
440457 packages_skip_regex :
441458 type : string
459+ packages_select :
460+ type : string
461+ default : " "
442462 steps :
443463 - *build_workspace_overlay
444464 restore_build :
@@ -496,6 +516,9 @@ _jobs:
496516 packages_skip_regex :
497517 type : string
498518 default : " "
519+ packages_select :
520+ type : string
521+ default : " "
499522 job_test : &job_test
500523 parameters :
501524 << : *job_build_parameters
@@ -510,21 +533,31 @@ _jobs:
510533 RMW_IMPLEMENTATION : << parameters.rmw >>
511534
512535jobs :
513- release_build : &release_build
536+ core_build :
514537 << : *job_build
515538 executor : release_exec
516539 steps :
517540 - checkout_source
518541 - setup_dependencies
519542 - build_source :
520543 packages_skip_regex : << parameters.packages_skip_regex >>
521- system_build : &system_build
544+ packages_select : << parameters.packages_select >>
545+ algorithm_build :
522546 << : *job_build
523547 executor : release_exec
524548 steps :
525549 - restore_build
526550 - build_source :
527551 packages_skip_regex : << parameters.packages_skip_regex >>
552+ packages_select : << parameters.packages_select >>
553+ system_build :
554+ << : *job_build
555+ executor : release_exec
556+ steps :
557+ - restore_build
558+ - build_source :
559+ packages_skip_regex : << parameters.packages_skip_regex >>
560+ packages_select : << parameters.packages_select >>
528561 release_test : &release_test
529562 << : *job_test
530563 executor : release_exec
@@ -536,36 +569,49 @@ jobs:
536569 - report_coverage
537570
538571_parameters :
539- release_build_parameters : &release_build_parameters
540- packages_skip_regex : " '(nav2_system_tests|nav2_smac_planner|nav2_mppi_controller|nav2_route|nav2_rviz_plugins|nav2_rotation_shim_controller|nav2_waypoint_follower|nav2_smoother|opennav_docking|opennav_following|nav2_behaviors|nav2_bringup|navigation2)'"
541- system_build_parameters : &system_build_parameters
572+ core_build_parameters : &core_build_parameters
542573 packages_skip_regex : " "
574+ packages_select : " nav2_common nav2_voxel_grid nav_2d_msgs dwb_msgs nav2_msgs nav2_ros_common nav2_simple_commander nav2_loopback_sim nav2_util nav2_amcl nav2_behavior_tree nav2_lifecycle_manager nav2_map_server nav_2d_utils nav2_velocity_smoother nav2_costmap_2d costmap_queue nav2_core"
575+ algorithm_build_parameters : &algorithm_build_parameters
576+ packages_skip_regex : " "
577+ packages_select : " nav2_collision_monitor dwb_core dwb_critics dwb_plugins nav2_dwb_controller nav2_controller nav2_bt_navigator nav2_constrained_smoother nav2_navfn_planner nav2_planner nav2_regulated_pure_pursuit_controller nav2_theta_star_planner nav2_graceful_controller"
578+ system_build_parameters : &system_build_parameters
579+ packages_skip_regex : " '(nav2_common|nav2_voxel_grid|nav_2d_msgs|dwb_msgs|nav2_msgs|nav2_ros_common|nav2_simple_commander|nav2_loopback_sim|nav2_util|nav2_amcl|nav2_behavior_tree|nav2_lifecycle_manager|nav2_map_server|nav_2d_utils|nav2_velocity_smoother|nav2_costmap_2d|costmap_queue|nav2_core|nav2_collision_monitor|dwb_core|dwb_critics|dwb_plugins|nav2_dwb_controller|nav2_controller|nav2_bt_navigator|nav2_constrained_smoother|nav2_navfn_planner|nav2_planner|nav2_regulated_pure_pursuit_controller|nav2_theta_star_planner|nav2_graceful_controller)'"
580+ packages_select : " "
543581 release_test_parameters : &release_test_parameters
544582 packages_skip_regex : " "
545583
546584workflows :
547585 version : 2
548586 build_and_test :
549587 jobs :
550- - release_build :
551- << : *release_build_parameters
588+ - core_build :
589+ << : *core_build_parameters
590+ - algorithm_build :
591+ << : *algorithm_build_parameters
592+ requires :
593+ - core_build
552594 - system_build :
553595 << : *system_build_parameters
554596 requires :
555- - release_build
597+ - algorithm_build
556598 - release_test :
557599 << : *release_test_parameters
558600 requires :
559601 - system_build
560602 cache_test : true
561603 nightly :
562604 jobs :
563- - release_build :
564- << : *release_build_parameters
605+ - core_build :
606+ << : *core_build_parameters
607+ - algorithm_build :
608+ << : *algorithm_build_parameters
609+ requires :
610+ - core_build
565611 - system_build :
566612 << : *system_build_parameters
567613 requires :
568- - release_build
614+ - algorithm_build
569615 - release_test :
570616 requires :
571617 - system_build
0 commit comments