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] Disable VTK in every test. #2018

Closed
wants to merge 1 commit into from

Conversation

frozar
Copy link
Contributor

@frozar frozar commented Oct 2, 2017

Speed up the continous integration test (and compilation also).

Still some test fails. Can we disable the tests that fail? (It's still better than see the broken status on master branch.)

@taketwo
Copy link
Member

taketwo commented Oct 2, 2017

I think we should not disable VTK in the main library build job. Doing so automatically disables pcl_visualization, which means we won't catch any compilation errors in this module!

And the test fails because VTK is missing. This is as expected, however the right thing will be to disable the test conditionally.

@SergioRAgostinho
Copy link
Member

There are several classes, examples and tools, which rely on VTK. It's an optional dependency which enables roughly already a considerable number of functionalities, that's why the unit tests speed up. The main problem comes from the fact that we use VTK for some IO operations, and IO ubiquitous throughout all tests. Therefore, simply disabling VTK is not an option.

We're at a stage in which speeding up is not really an option. The way to go is modularizing as much as possible, which is very hard given the interdependencies between modules. Check #1786 for more info on those.

@frozar
Copy link
Contributor Author

frozar commented Oct 9, 2017

Thank you for the reference over the previous merge request about CI. I understand (not deeply, but enough) your suggestion about the modularisation of the different part of the code, but this kind of task is really hard for people who are not the original author of the code. It will take years...

Is it the only way to speed up the tests on Travis?

@SergioRAgostinho
Copy link
Member

There might be one trick still worth trying but I'm not fully sure we can manage it with Travis' provided cache. It might require an external server for it and some additional caching logic from our side.

In order to compile the apps, examples, tools and tests, the respective library components need to be compiled previously. So ideally one would like to build the entire library first and then follow up with other jobs which make use of this build to then build (incrementally) the apps, examples, etc... This would ensure that one only builds the apps or the examples in that respective job. The thing is that to do that need to cache the entire build folder, and I'm not sure if that's possible given its potential size.

For more info
https://docs.travis-ci.com/user/build-stages#Sharing-files-between-jobs-via-S3
https://github.com/facebook/flow/pull/1617/files

Disclaimer: All these make use of Amazon S3 and we don't have such facilities at our disposal, or any other server in which we could dump stuff.

@frozar
Copy link
Contributor Author

frozar commented Oct 12, 2017

I saw this possibility with "build-stage" from Travis CI, it's seems really interesting and relevant for PCL. Unfortunately, I have no experience in this field. (Also this feature is still in Beta on Travis CI, so surprise can happen.) If it's possible, I'll give it a try on my personnal fork.

@SergioRAgostinho
Copy link
Member

I'm gonna close the PR since whatever strategy we come up to speed-up the apps job will definitely not involve "disabling VTK in every test".

@frozar frozar deleted the travis_without_vtk branch November 9, 2017 08:05
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

Successfully merging this pull request may close these issues.

3 participants