-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add travis build: the third try #5614
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
Conversation
75a89e5
to
20a3df5
Compare
Any clue why test_time and SSE tests fail? They also fail on my local Ubuntu installation. BTW, it seems the core test set is too bulky for Travis. |
I added
...while the required header is here: |
Nice, thanks for looking into this! This works better than I expected already. Some issues to think about here:
As for those two failing tests, I think it's ok to ignore them on the bots. We'd likely have to make a list of them, as I think @juj has on his bots. |
|
How long is the maximum time that Travis allows to run? And how long would the current test suites in full take up when run on Travis level hardware? I see that there is a new project that has come up to enable buildbot to integrate with GitHub, done by Rust people: https://github.com/graydon/bors. It might be possible to use something like that to integrate these "build PRs before merging" checks with existing buildbot configs, in which case it would be possible to add the existing buildbot arch to run through PRs, without time limitations. |
Not sure, but it can only cover test_t* to test_z* within 40 minutes. (It takes hours on my local machine, I couldn't even wait for it to finish) |
Heh, nice parallelization ;) Sometimes the simplest solutions work surprisingly well. There's more tests that we would want to run. In particular, Overall, I think all the tests we'd like to run are going to be too much to Travis, even split up into chunks - I'm sure they'll limit our resources eventually. So we'd need to decide what subset we want to run. Or, figure out what the travis limits are - they do have paid plans, and maybe we can get that set up, but I'm not sure from the page there what the limits are for open source, maybe someone here knows? |
Added
It seems it's not well documented, but 50-min build timeout and five concurrent jobs. Travis said in 2015 that further support for an open source project can be discussed via email. |
`test-binaryen` started to fail on the latest prebuilt SDK 1.37.21 after emscripten-core#5620 as the SDK doesn't support `--trap-mode` yet. Disabling the test.
|
to make abspath test pass (which expects warnings which will not appear on system root directory)
test_native_link_error_message is skipped because of clang library issue (system doesn't have stddef.h depended by stdio.h, only gcc does) others are skipped because of missing --trap-mode issue.
It also has clang library problem.
So it's taking 9 hours overall! Looks like it takes about 4 minutes to set up Emscripten for each build job (as well as some time to wait for a VM to be ready). For any of the build jobs which run less than 15 minutes or so it would probably be faster overall to combine them together again. |
Currently a single test fails because the version tag of the incoming branch and the latest precompiled SDK don't match. Does this happen frequently, should I worry about it? |
Thanks @saschanaz for finding those links! It seems like we're ok then to run all these jobs, they just won't be concurrent, so it'll take a while for them all. But I think that's ok for us.
I'm not sure how quickly the precompiled SDK updates to the latest version - it should be as fast as the bots can build it, I think, @juj? Aside from understanding that issue, I think this PR is good to merge. Nice work! |
They run concurrently, so that the actual full running time can be 1 hr 33 min while the total sum of the running times of each job is 6 hrs 41 min. |
No 1.37.22 tag on binaryen side, probably that's why no precompiled SDK 1.37.22? |
Good point, I keep forgetting that. I tagged binaryen at 1.37.22 now. Should probably automate that somehow. |
For reference, the current physical build bots take up
The bots do full builds from scratch (not incremental builds) when they see new tags on all four repositories. These builds generally take up a couple of hours, but they run serial with respect to the unit test jobs, so it is possible that e.g. a 8h unit test run on Ubuntu gets queued before doing a tag rebuild, in which case it may take something like 8+2 = 10 hours to see the new tagged build come up. |
Ok, I think we can merge this in. That In the long term, we may want to add more tests using @juj's physical bots so that we also get the browser tests, etc., so we can refine and improve this over time, but this PR is a great step. Thanks a lot @saschanaz! |
Basically copied from #5087. Probably the test should be more than just a hello world.
PS: Please merge emscripten-core/emsdk#106 to reduce the build log.