-
Notifications
You must be signed in to change notification settings - Fork 722
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
Add support for TruffleRuby in TravisCI #9803
Comments
That was due to TruffleRuby not supporting |
Starting with Hope this helps, |
@fniephaus Thank you for the pointers! It looks like we need a "binary ruby" of TruffleRuby due to Travis doing |
I assume |
@fniephaus It's RVM's concept of "ruby binary". |
Not that long, < 1 minute locally. But it's slower on Travis CI and RVM does a lot of extra things beyond the download for Downloading the archive manually seems quite a bit faster (only a few seconds for download+extract), and recompiling the OpenSSL extension seems to take a bit more than a minute: https://travis-ci.org/ruby/mspec/jobs/397422999 |
I checked and it seems all 4 modes documented by Travis CI at https://docs.travis-ci.com/user/reference/overview/#Virtualisation-Environment-vs-Operating-System use OpenSSL 1.0.1 or 1.0.2:
I think the OpenSSL extension as shipped in TruffleRuby 1.0.0-rc3 is compatible with all of these, but I need to check. |
4min is quite some time if you want people to use TruffleRuby for short test cases or scripts. |
With TruffleRuby 1.0.0-rc3, it seems we don't need to recompile the OpenSSL extension on Travis CI: I ran successfully the OpenSSL specs & MRI tests on the 4 modes mentioned above. So it's now a matter of integrating with RVM support in Travis-build's rvm.rb, or integrating with RVM's "binary rubies". |
It might be possible to build and store binaries via https://github.com/travis-ci/travis-rubies, it's what we do for other Ruby implementations. |
Note to anyone reading this: you can already run TruffleRuby in TravisCI, see https://github.com/oracle/truffleruby/blob/master/doc/user/standalone-distribution.md#testing-truffleruby-in-travisci We're working on getting support for |
I tried on travis:
But it failed: https://travis-ci.org/socketry/timers/jobs/451176353 |
@ioquatix Thanks for the report. It seems to fail in RVM's code installing dependencies, I'll take a look. |
I would like to make it work. But it has to be super simple. I don't mind adding |
I fixed this issue with travis-ci/travis-build#1604 Now rvm:
- truffleruby should just workTM, and is documented in https://docs.travis-ci.com/user/languages/ruby/#truffleruby ! |
Note, on Xenial the OpenSSL version is:
This could be related to some OpenSSL-related errors we get recently with TruffleRuby in TravisCI. |
Hello,
I would like to have support for TruffleRuby in TravisCI.
So that TravisCI users can use TruffleRuby with, in their
.travis.yml
:What is required to make this work?
This is not very clear to me.
I would like to let TravisCI users try TruffleRuby releases. Therefore it is not a goal to have "truffleruby-head" version for now.
TruffleRuby can now be installed by RVM and is part of RVM master.
So I guess one requirement is waiting for a
stable
release of RVM as TravisCI seems to not use the latest RVM. Probably TravisCI uses the latest stable release of RVM? Could you confirm?I tried to manually update RVM with
rvm get head
, and then install TruffleRuby with the command that TravisCI seems to use forrvm:
(eregon/mspec@a7221c5 for details). However, this fails:I then tried without the
--binary
flag and that worked (with sudo: true to let RVM install dependencies).That was rather slow, due to compilation and installing the default gems.
What should be done to make
rvm: truffleruby
work?Should we create a "binary ruby" of TruffleRuby?
Should we have one archive per OS, distribution & version?
Where should that be hosted?
Currently, TruffleRuby is distributed as a single archive per OS (Linux or macOS):
https://github.com/oracle/truffleruby/releases/download/vm-1.0.0-rc2/truffleruby-1.0.0-rc2-linux-amd64.tar.gz
https://github.com/oracle/truffleruby/releases/download/vm-1.0.0-rc2/truffleruby-1.0.0-rc2-macos-amd64.tar.gz
The only step that is more fined-grained than Linux/macOS is recompiling the OpenSSL C extension, as that depends on the version and configuration of the system libssl.
By default, the OpenSSL C extension is compiled against libssl 1.0.2, which might work out of the box on some of the Travis images.
What versions of libssl does TravisCI images use?
cc @BanzaiMan @rkh @mpapis
The text was updated successfully, but these errors were encountered: