Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new drake-ros-underlay job for Rolling #218

Merged
merged 3 commits into from
Feb 24, 2022

Conversation

cottsay
Copy link
Member

@cottsay cottsay commented Feb 23, 2022

This job will build the underlay tarball for use with drake-ros. It will continue to build against Ubuntu Focal even though Rolling has transitioned to Jammy.

This will replace the existing rolling-on-focal job, which has only successfully built once and will be removed in a follow-up PR.

Highlights:

  • All package sources come from release repositories registered in the rosdistro index
  • Only built RMW is rmw_fastrtps_cpp rmw_cyclonedds_cpp (until Fast-DDS stops segfaulting)
  • Performance and linter tests are skipped
  • Build schedule is weekly
  • Tarball will be uploaded to repo.ros2.org

Currently, the scope includes --packages-up-to:

  • ament_cmake_clang_format
  • cv_bridge
  • ros_base
  • rviz2

This job will build the underlay tarball for use with drake-ros. It will
continue to build against Ubuntu Focal even though Rolling has
transitioned to Jammy.
@cottsay cottsay self-assigned this Feb 23, 2022
Copy link

@clalancette clalancette left a comment

Choose a reason for hiding this comment

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

I've left two questions inline, and I have one overarching question:

All package sources come from release repositories registered in the rosdistro index

How does this work/how is this configured in here?

- cv_bridge
- ros_base
- rviz2
package_selection_args: '--packages-ignore rmw_fastrtps_dynamic_cpp --packages-ignore-regex .*connext.* .*cyclonedds.* .*iceoryx.*'

Choose a reason for hiding this comment

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

I'm just curious: why do we have both build_tool_args and package_selection_args? Couldn't we do this all as part of build_tool_args?

Copy link
Member Author

Choose a reason for hiding this comment

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

This is part of the mechanism that the CI jobs use to ensure minimal dependencies. Any packages present in the workspace that aren't found by the package_selection_args are marked with an ignore file. The dependencies are enumerated after that, then build, then test.

rolling/ci-drake-ros-underlay.yaml Show resolved Hide resolved
Copy link
Member

@nuclearsandwich nuclearsandwich left a comment

Choose a reason for hiding this comment

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

In general I'm happy to see this job make the formal transition to something specialized for drake-ros since we were bending the "vanilla"-ness of the rolling-on-focal job with all the toppings.

A couple of questions about details but nothing blocking either way.

rolling/ci-drake-ros-underlay.yaml Outdated Show resolved Hide resolved
ROS_PYTHON_VERSION: '3'
build_tool: colcon
build_tool_args: '--merge-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DSKIP_MULTI_RMW_TESTS=1 --no-warn-unused-cli'
build_tool_test_args: '--merge-install --retest-until-pass 2 --ctest-args -LE "(linter|performance|xfail| placeholder-with-space )" --pytest-args -m "not linter and not performance and not xfail"'
Copy link
Member

Choose a reason for hiding this comment

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

The placeholder-with-space is there to keep the ros_buildfarm shell pipeline from dropping the quotes and thus causing parser problems with the regex metacharaters right? Do you think that merits a comment or just a passing sigh of exasperation?

Copy link
Member Author

Choose a reason for hiding this comment

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

You're correct. We should probably open a ticket on ros_buildfarm, though the behavior isn't consistent across all platforms on ci.ros2.org either.

A sigh of exasperation is necessary regardless.

Co-authored-by: Steven! Ragnarök <[email protected]>
@cottsay
Copy link
Member Author

cottsay commented Feb 23, 2022

How does this work/how is this configured in here?

The package_dependencies and package_names options control this behavior, which is documented in ros-infrastructure/ros_buildfarm.

It's similar to how rosinstall_generator works, but it doesn't actually have any dependency on rosinstall_generator or vcstools.

@cottsay cottsay merged commit 3a2d739 into ros2 Feb 24, 2022
@delete-merged-branch delete-merged-branch bot deleted the cottsay/ci-drake-ros-underlay branch February 24, 2022 20:47
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.

3 participants