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

Use Travis workspaces #228

Merged
merged 3 commits into from
Aug 18, 2019
Merged

Use Travis workspaces #228

merged 3 commits into from
Aug 18, 2019

Conversation

native-api
Copy link
Contributor

A new Travis CI feature, workspaces, allows to use one MacOS cache job to build FFMpeg instead of 20.

It's currently in beta -- so it's your call whether it's good enough for production use. It worked for me well save for a small nitpick when I used this project to try it out.

@native-api
Copy link
Contributor Author

It shaves about 11 hours off of full build time (~5,5 hours of real time since 2 OSX jobs run in parallel).

@native-api
Copy link
Contributor Author

On a closer inspection, it definitely shaves off machine time massively, but doesn't save real time much because the Linux jobs are now the critical path, and full-building the 20 OSX jobs takes about the same time as the 48 Linux ones.

Moving them to the Final stage would fix this, but running Linux builds will be delayed by ~40 min (~10 min for rebuilds) that the S1 stage takes -- and they will not run at all if it fails.

Is this acceptable? If you need to debug some issues with a specific job, you can disable everything else temporarily anyway (and then edit the history to remove those temporary commits).

@skvark
Copy link
Member

skvark commented Aug 8, 2019

I think it's ok. In any case it's usually best to disable all but one or two jobs if there are issues. Also the Linux side is far more easier to debug than macOS because it can be done locally via Docker.

With only 1 OSX job in S1, the Linux part is now the critical path and holds the build time back
@skvark
Copy link
Member

skvark commented Aug 18, 2019

Let's give this a try.

@skvark skvark merged commit 4ca11a2 into opencv:master Aug 18, 2019
@native-api native-api deleted the use_workspaces branch August 20, 2019 17:07
skvark pushed a commit that referenced this pull request Sep 5, 2019
* Use one job for MacOS Homebrew builds cache with Travis workspaces

* Brew build job needs to both feed to other jobs and cache between builds

* Move Linux jobs to the Final stage

With only 1 OSX job in S1, the Linux part is now the critical path and holds the build time back
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.

2 participants