Jenkins CI for ros1_bridge

I have been working on the action bridge in ros1_bridge (Implemented action bridge by ipa-hsd · Pull Request #256 · ros2/ros1_bridge · GitHub) for a while now. All the requested features took some time to be implemented. Few of the developers have tested it and is working for them (thanks for the support!), a review by one of the main reviewers is still pending.

Before the review, the Jenkins CI needs to pass, which at the moment isn’t: ci_packaging_linux #515 Console [Jenkins]

15:05:01 -- Checking for module 'roscpp'
15:05:01 --   Found roscpp, version 1.15.14
15:05:01 -- Checking for module 'std_msgs'
15:05:01 --   Found std_msgs, version 0.5.13
15:05:01 -- Checking for module 'actionlib'
15:05:01 --   No package 'actionlib' found
15:05:01 CMake Error at cmake/find_ros1_package.cmake:29 (message):
15:05:01   find_ros1_package() failed to find 'actionlib' using pkg_check_modules()
15:05:01 Call Stack (most recent call first):
15:05:01   CMakeLists.txt:48 (find_ros1_package)

Based on a suggestion, I added a condition in package.xml: Implemented action bridge by ipa-hsd · Pull Request #256 · ros2/ros1_bridge · GitHub.

This worked for me in docker (looks like local_setup.bash does not change ROS_DISTRO and ROS-VERSION?), but Jenkins still fails. Isn’t the condition

<build_depend condition="$ROS_VERSION == 1">actionlib</build_depend>

supposed to be used only when the package is to be build for ROS1 and not in a mixed environment?

What is the correct way of specifying ROS1 dependency in ros1_bridge?

I don’t recall a “supported” way of doing mixed environment dependency declaration.

For CI, ROS1 dependencies seem to be explicitly installed in the Dockerfile here so maybe you need to make a request to add the actionlib related deps in there ?

1 Like

@marguedas thanks for the response! I wasn’t aware of this Dockerfile and that the ROS1 deps are explicitly installed there. I asked on the PR multiple times if it can be installed in the Jenkins job, but got no response for it.

@gbiggs can’t we do that for actionlib?

It might be possible. You’d need to make a PR against that repository adding the necessary dependencies. Then I can use that PR’s branch to try a CI run.

1 Like