-
Notifications
You must be signed in to change notification settings - Fork 48
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
Travis docker #286
Travis docker #286
Conversation
This should be done in a more intelligent way to avoid propagating this change to `master` when we make a new release, but at the moment I do not a better solution.
On devel branch, use YARP devel for Travis testing
Travis now runs in container-based mode rather than in a full VM
I did not know of the |
.travis.yml
Outdated
|
||
notifications: | ||
email: | ||
- pegua1@gmail.com |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know you were already missing them xD
As in #276 , I think we can drop support for Gazebo 5 & 6 on both master and devel . Given that we don't know when a new release will be made, I think it is beneficial to have Gazebo 8 testing in master, so I would move this PR to target |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, the only requested change is to target master rather then devel.
Now the pull request targets master. |
I think one review is enough to merge. |
…do not merge this commit in devel
After discussing with @traversaro, I added docker support to Travis CI. In addition to the committed file, please refer to robotology-playground/docker_images and the new dockerhub account.
In short, using docker's ephemeral containers in Travis CI opens the doors to the following features and scenarios:
docker
spawn a new container that dies right after their execution. The code of the DUT is 1) built and 2) installed and tested in different clean containers.sudo
can be disabled inside Travis, operation that allows switching to a container-based mode.yarp-tdd
image, which is downloaded from DockerHub. Before that, the docker image is built directly by DockerHub, and its build can be triggered by a new commit pushed into the robotology-playground/docker_images repository. This method, in addition toccache
support, should consistently improve compile time. First tests show that build time could be reduced by a factor of 3. I can already hear and feel the happiness of Travis' servers.devel
branch built againstyarp-devel
is merged into itsmaster
branch, a manual operation on.travis.yml
is required. This docker way, at least for thegazebo-yarp-plugins
requirements, automates the selection of the correct yarp branch by pulling a different docker image. The implemented strategy is the following: if the targeted branch by Travis ismaster
, useyarp:master
image, else useyarp:devel
.Some TODOs and comments:
docker_images
repository's directory tree that can be handled in better ways.master
) againstyarp:master
(circumstance that could be thought as an exception), it could be possibile to parse somewhere in.travis.yml
the triggering commit searching for a custom tag (e.g. [travis-use-yarp-master]).yarp-git
images, a signal external torobotology-playground/docker_images
is required (when the images will be stable, they won't change but the code inside them does. Right now only new commits intodocker_images
trigger an automatic image build). A possibile trigger could be the yarp'safter_success
travis step, even if it would probably trigger too many image rebuilds considering the activity on the project. The images are tightly linked and nested, the build process order isyarp
> (icub
&&yarp-gazebo
) >yarp-tdd
, and it takes a lot of time with the CPU power that DockerHub provides for free. Other ideas on triggers are welcome.yarp-tdd:gazeboXbin
) but not used.Jenkins
, probably the docker images could be useful to set up an internal build system.