Ask Your Question
0

Travis-CI for ros2cli

asked 2018-04-10 11:29:50 -0500

NickM gravatar image

I am looking for creating a Travis-CI pipeline for ros2cli repo.

Here is my plan so far:

wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos && vcs-import src < ros2.repos

  • Run ament build_pkg for every package in ros2cli

  • Run ament test_pkg for every package in ros2cli

What do you think, is it going to work?

edit retag flag offensive close merge delete

Comments

This looks like a duplicate of your question here: https://github.com/ros2/ros2cli/issue...

My answer why I think it shouldn't be done with Travis still stand.

Dirk Thomas gravatar imageDirk Thomas ( 2018-04-10 12:01:11 -0500 )edit

I raised this question here because I did not want to pollute the main thread on PR with a separate topic. I don't fully understand the reasoning behind why.

So ament build_pkg foo does not build dependencies for foo?

NickM gravatar imageNickM ( 2018-04-10 12:56:55 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2018-04-10 14:16:59 -0500

Dirk Thomas gravatar image

What do you think, is it going to work?

Yes, it would work. You should use ament build though and don't have to invoke build_pkg for all packages in the right order.

Though the actual question is: does it make sense to set this up manually through Travis?

I would say no to this - for multiple reasons:

  • Since you have to build all recursive dependencies from source the build time will grow significantly the higher you get in the stack. And very soon you will reach the maximum runtime of a Travis job.

  • Therefore instead of build all recursive dependencies you want to install all dependencies from source and only build the sources of the specific repository being tested.

  • In ROS 1 that exact functionality / logic is being provided by the ros_buildfarm. You can either utilize the jobs provided by the buildfarm hosted by OSRF or use the command line interface of the repo to run the exact same build in e.g. a Travis job. So no need to develop and maintain the same (or even only a subset) of that feature.

    • The buildfarm for ROS 2 currently doesn't offer these jobs (devel, PR, prerelease) but that will change till the next release scheduled in June.
edit flag offensive delete link more

Comments

I see, thanks for the explanation. The benefit of Travis is that is integrated with GitHub and is free for public projects. Working in a forked repo I see the result of running all the tools right away. This is way better than running tools locally and hoping that local environment is a good one.

NickM gravatar imageNickM ( 2018-04-10 14:48:28 -0500 )edit

I want that by the time PR is submitted, the quality of the PR is very clear for the submitter and the maintainer without any additional steps on their side. There is definitely no value in duplicating work.

NickM gravatar imageNickM ( 2018-04-10 14:51:24 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2018-04-10 11:29:50 -0500

Seen: 68 times

Last updated: Apr 10 '18