Open marip8 opened 1 year ago
IMHO this is out of scope of industrial_ci. The scripts assume a ROS environment to function properly.
IMHO this is out of scope of industrial_ci.
Maybe at the moment, but I'm proposing this PR to support these types of builds as a feature of industrial_ci
rather than a convenient hack.
At least for ROS-I Americas, I think ROS-independent builds are going to become more common as we separate the core functionality of our tools from the ROS interfaces that make them convenient to use. As stated in #817, I personally already have several ROS-I related projects that could leverage this type of build today, with more planned in the near future. We could certainly gather feedback from others if there is a question about general interest in this capability as a feature. In my opinion, there is a ton of value in the ICI pipeline: nested builds, docker image creation, testing, dependency installation, etc. I would rather not re-implement this whole pipeline elsewhere when it only requires very minor modifications to support the builds I am interested in.
Regarding the sanity checks, I understand the concern. What would be an appropriate way to keep them while being able to keep these added features (i.e., no UNDERLAY
required and no sourcing /opt/ros/$ROS_DISTRO
)? An additional variable(s ) that must be explicitly set to enable a ROS-independent build?
What is so bad about sourcing /opt/ros? In your example (https://github.com/marip8/opw_kinematics/pull/1) you even install the ROS repositories manually..
https://github.com/ros-industrial/industrial_ci/pull/834 should be sufficient, it breaks ros_prerelease tests, but I will have to come up with a better implementation for those anyway
What is so bad about sourcing /opt/ros? In your example (https://github.com/marip8/opw_kinematics/pull/1) you even install the ROS repositories manually..
Mostly because I want to do builds where ROS isn't actually installed, so there is no /opt/ros/...
to source. In the opw_kinematics
example, I don't actually install ROS. I'm just using some ROS ecosystem tools like colcon
to build and rosdep
to install dependencies that are distributed on Ubuntu (i.e. from rosdep/base.yaml
). I still have to add the ROS source list and keys in order to install these tools, but ROS itself was never installed.
The whole point of colcon, ament, and vcs is they are separate from ROS. Perhaps an alternative method is to contribute the actions directly to those repositories?IE - VCS has a clone action, and colcon has a build action and a test action?
Addresses #817 to allow CI builds that do not source
/opt/ros/<distro>
during the build.Here is an example CI run where this capability was used