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
Reduce travis test time #1765
Comments
Hey, what architecture is it running on? If it's linux To extract that archive you'd need
If it's not possible to install zstd for some reason, I can make HEAD available as a .tar.gz or something more conventional. Ah, as you may know, rakudo is not relocatable, that's why it has to be extracted with absolute names. The build will then be located in |
Might as well give it a try. |
I can't seem to find zstd in the repos for the Travis build environment. https://travis-ci.org/JJ/doc |
Oh crap, ubuntu 14.04?? Is it possible to change that somehow? |
If not, I'll just make it available as .tar.gz, that's possible. |
That would certainly help. It might be faster than the docker container...
|
Hey @JJ, what about this? https://whateverable.6lang.org/HEAD.tar.gz tar -x --absolute-names -f "$PATH-TO-ARCHIVE" |
FWIW for anyone else reading, some discussion: JJ@97daef5#diff-354f30a63fb0907d4ad57269548329e3L43 |
In case somebody wants to use it on an ancient system where zstd is not easily available. Maybe Raku/doc#1765 ? We'll see how this goes and if it's useful I can improve the code later.
I'll try that. Thanks!
2018-02-11 2:13 GMT+01:00 Aleks-Daniel Jakimenko-Aleksejev <
notifications@github.com>:
… FWIW for anyone else reading, some discussion: ***@***.***#diff-
354f30a63fb0907d4ad57269548329e3L43
<JJ@97daef5#diff-354f30a63fb0907d4ad57269548329e3L43>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1765 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAAB9NgZB1k3-bobrzivGvJVh8UtnmEbks5tTj6ugaJpZM4SA5rV>
.
--
JJ
|
I'm reopening this because I've been experimenting with Docker, creating a perl6/doc specific container, and managed to reduce 4 minutes more from testing time. The downside is that it's a external Dockerfile, and it must be updated every month for the latest version of Perl6, as well as add other external dependencies if they change. I can maintain that or even move it to the perl6 set of repos. So I would like to hear your opinion about this before merging. |
Personally I'd prefer more things to act as a canary if something goes wrong on HEAD, especially our own repos. But those who actually work on the doc repo should decide if 4 minutes is worth it :) |
IMO, I would rather the doc site was using a known good version rather than HEAD. |
By the way, why not have both? |
@coke in that case, I would go for the Docker option. It's using a known version, and it's updated a few days after the monthly release comes out. It can be changed to Rakudo Star if needed. @AlexDaniel in that case, I would try and add another CI service, because they can't be done in parallel, far as I can tell. I could try shippable or Circle CI. |
I'm taking a look at Shippable, but it needs some configuration. |
we're running multiple versions in parallel on many of our projects; moarvm is probably the most complicated, because we also run a coverage analysis alongside regular builds: https://github.com/MoarVM/MoarVM/blob/master/.travis.yml - not a good template for the docs, but it shows what you can do. |
Yep, but the thing with Docker would be testing exactly the same as it is
being done now, only it would be faster since the Docker container would
have everything already installed.
Probably what you mean is to use the remaining time to do something else,
such as the xt tests, which are not being run right now.
|
no, I mean running one job with docker to get the latest release and one job with the HEAD build from whateverable. travis would usually do those two jobs at the same time. |
Maybe this is not the place to ask, but how do you do that? Is there some
specific travis mechanism? Or just use & at the end of a command to run it
in parallel?
|
What I see here is mostly tool-specific optimizations, and most of the time
is taken in make htmlify
But one thing we could do is to run that only on a specific platform; it's
not really part of the test suite. prove -j would speed up things in the
tests, and maybe we could keep time in the same ballpark, even running
tests with two different versions. I can try and do that if you want.
Thanks for the suggestions!
|
oh, no, that's the "matrix" thing; for example in moarvm you give it a list of compilers (gcc and clang) and a list of operating systems (linux and osx) and whether to use the jit or not, and it'll run the cross-product of those tasks. check out this page: https://travis-ci.org/MoarVM/MoarVM/builds/340577255 |
Wow, that's cool. Thanks!
|
Is the idea to test against 1 rakudo version or against them all? I create Ubuntu 16.04 pkgs specially for building Rakudo for different Linux distributions (using Docker). You could use the latest released deb? wget https://github.com/nxadm/rakudo-pkg/releases/download/v2018.01.1/rakudo-pkg-Ubuntu14.04_2018.01-01_amd64.deb && dpkg -i *.deb "Buildtime"? A few seconds to download the deb and install it. |
Yes but then a few minutes for zef to install all of the deps. This is the main issue here, otherwise whateverable builds would be enough. |
OK, I'll try that.
|
2018-02-13 15:01 GMT+01:00 Aleks-Daniel Jakimenko-Aleksejev <
notifications@github.com>:
"Buildtime"? A few seconds to download the deb and install it.
Yes but then a few minutes for zef to install all of the deps. This is the
main issue here, otherwise whateverable builds would be enough.
There's also the version issue. Whateverable is downloading HEAD, whatever
that is, this package has a particular version, same as the docker build.
Anyway, the matrix thing allows to run everything in parallel. I'll try to
prepare something; we can actually have three different versions at the
same time; we could use @nxadm's to test for several versions, for
instance, while we use docker to test for the last released version and
whateverable for HEAD.
|
I see. I don't mind creating a specialized travis deb with all the dependencies built in, if that helps. Whatever works for you, JJ & co. |
Thanks, but we can make do with that, don't worry :-) I'll what can be done
and will be back to you...
|
FWIW whateverable allows you to download any build for any commit, for example:
(over 14000 builds available) The only problem is that these are compressed with zstd, and I had to add some logic to recompress HEAD into |
Thanks!
|
Are we currently parallelizing the build process? It does not feel like we do. There's also this ticket: #664 |
I am just procrastinating on this. Yes, we should...
2018-03-04 11:42 GMT+01:00 Aleks-Daniel Jakimenko-Aleksejev <
notifications@github.com>:
… Are we currently parallelizing the build process? It does not feel like we
do. There's also this ticket: #664
<#664>
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#1765 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAAB9Da-xh4G5IZbEzNlUZcrO6jc5iZiks5ta8USgaJpZM4SA5rV>
.
--
JJ
|
But leaving #1828 closed. The way it is now, it's going to be impossible to have it built in OSX. Not only are we using Linux binaries, but also packing them in a way that's not available in OSX. We'll have to add it to the matrix with specific instructions for installing stuff, but that's rather a matter for #1765
Since it's compiling rakudo, it takes on average half an hour. I would suggest changing it to a Docker container, or just somehow use a precompiled version of Rakudo to test.
The text was updated successfully, but these errors were encountered: