Skip to content
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 CI - Test job #1785

Closed
SergioRAgostinho opened this issue Dec 22, 2016 · 5 comments
Closed

Travis CI - Test job #1785

SergioRAgostinho opened this issue Dec 22, 2016 · 5 comments
Milestone

Comments

@SergioRAgostinho
Copy link
Member

As you might have noticed, currently our Tests task in the CI is timing out. Travis set up a max limit for a job to run of 50minutes, whereas before it was 2 hours.

Some of the changes I tried already:

  • VTK: changed it to be installed from the package manager, allowed me to gain 14 minutes when no cache is available. Eventually extended this to all other dependencies.
  • Setting the number of jobs to 2 - the container runs out of memory.
  • Setting precompilation of only core point types, when the PCL_NO_PRECOMPILE mechanism is not implemented, on the segmentation module and some tests - minimal time benefit, still can't run 2 jobs
  • Implementing the PCL_NO_PRECOMPILE mechanism on all instantiations which didn't have it, which resulted in a negligible benefit.
  • Disabling compiling optimizations to reduce compilation time and memory footprint - still can't run 2 jobs.

At this point I'm convinced we might need to split testing across different build jobs, building only some modules and their corresponding tests.

I'm looking forward to hear some more ideas :)

@SergioRAgostinho SergioRAgostinho added the needs: author reply Specify why not closed/merged yet label Dec 22, 2016
@SergioRAgostinho SergioRAgostinho added this to the pcl-1.8.1 milestone Dec 22, 2016
@taketwo
Copy link
Member

taketwo commented Dec 23, 2016

changed it to be installed from the package manager

Last time I dag into this, VTK was not available from any of the PPAs approved for the container jobs. The same for some other dependencies.

Setting the number of jobs to 2 - the container runs out of memory

Actually, it's only two or three targets (registration and something else) that are so memory heavy that they kill the system. In previous versions of Travis scripts I compiled these with single job, and the rest with two. Maybe we can try this tactic again.

@SergioRAgostinho
Copy link
Member Author

Last time I dag into this, VTK was not available from any of the PPAs approved for the container jobs. The same for some other dependencies.

Cool, then I can do the transition. I wasn't sure what we wanted to keep from the old ones.

Actually, it's only two or three targets (registration and something else) that are so memory heavy that they kill the system. In previous versions of Travis scripts I compiled these with single job, and the rest with two. Maybe we can try this tactic again.

Keypoints -> brisk2d is a killer, registration and segmentation.

I'm currently rewriting the CMake files for the global tests, so that:

  • as long as you build a module, you can run its tests
  • one is able to individually specify if the tests for a certain module should be built

With this I can easily split the tests modules that need to be built/run across different jobs.

@taketwo
Copy link
Member

taketwo commented Dec 23, 2016

With this I can easily split the tests modules that need to be built/run across different jobs.

Well, give it a try. I think I had similar ideas couple of years ago, but got stuck with implementation because PCL modules are too much interconnected. You enable one thing, and everything else gets enabled as a chain reaction.

@SergioRAgostinho
Copy link
Member Author

Yeah, test-wise, they're definitely more coupled than I originally expected. At least with this change, it will be more evident which dependencies one should and should not add when writing tests for a certain module.

@SergioRAgostinho
Copy link
Member Author

Sneak peek available here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants