tesseract-robotics / tesseract_ros2

22 stars 24 forks source link

ROS2 ci #28

Closed jdlangs closed 2 years ago

jdlangs commented 2 years ago

Trying out a workflow where tesseract is built from source to see how feasible it is.

jdlangs commented 2 years ago

@Levi-Armstrong any idea why the workflow can't get past the taskflow dependency? I've tried installing it from the ROS-I PPA and also a local build/install from source which should put it /usr. CMake still seems to not find it though.

Levi-Armstrong commented 2 years ago

The current way you are installing taskflow will not work because you are using a docker image. Taskflow is currently being installed on the machine running the CI which starts a docker and will not have Taskflow. You will need to use the industrial CI before script functionality to do this install so it is in the Docker.

An easier approach may be to update this docker file

https://github.com/ros-industrial/docker/blob/master/tesseract/Dockerfile and build new dockers and push them to docker hub.

Examples on how to build the different distros

https://github.com/ros-industrial/docker/blob/master/tesseract/hooks/build

jdlangs commented 2 years ago

Thanks, I don't know how I managed to forget the CI was running in a container, not on the runner directly. For now, I'll go the simpler route of adding taskflow here instead of modifying the image.

I've had some conversations with @marip8 that we should probably prefer to drop the ROS base image and use a pure ubuntu base for all the tesseract and tesseract_planning CI. Maybe now is a good time to move towards that?

Levi-Armstrong commented 2 years ago

I've had some conversations with @marip8 that we should probably prefer to drop the ROS base image and use a pure ubuntu base for all the tesseract and tesseract_planning CI. Maybe now is a good time to move towards that?

I think that should be fine but not sure what the impact would be to build times since we would need to still install a few ros packages and the build tool catkin. I think this only impacts Tesseract since the other repos would still use the auto generated dockers like how tesseract_planning currently works.

jdlangs commented 2 years ago

Ok, so we're back to all green now. ~50 min is not great but not crazy terrible for overall run time. It does feel wrong to run a full tesseract build just to run clang_tidy though.

Levi-Armstrong commented 2 years ago

Ok, so we're back to all green now. ~50 min is not great but not crazy terrible for overall run time. It does feel wrong to run a full tesseract build just to run clang_tidy though.

You could enable clang tidy in the focal build and just have one which will take longer to run, but I think I had to split into two because it was exceeding a time limit.

Levi-Armstrong commented 2 years ago

@jdlangs can this be merged?

jdlangs commented 2 years ago

Yes, if you're ok with it. I never got around to trying to get rid of the separate clang-tidy build but that's not a blocker.