ruby / setup-ruby

An action to download a prebuilt Ruby and add it to the PATH in 5 seconds
https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
MIT License
799 stars 257 forks source link

Support Ubuntu 22.04 #333

Closed Watson1978 closed 2 years ago

Watson1978 commented 2 years ago

Github Actions has been support Ubuntu 22.04 platform (as public beta) and we can try it. (Ref. https://github.com/actions/virtual-environments/issues/5490)

However, seems that setup-ruby action does not support it yet. When downloading, the specified Ruby seems to be missing.

image

eregon commented 2 years ago

It's still in beta, so it might take some time to support it. Especially versions before 3.1 seem complicated to support due to 22.04 shipping with OpenSSL 3 and only Ruby 3.1 supports OpenSSL 3. At least we'll need https://github.com/rbenv/ruby-build/pull/1974.

So for now, on Ubuntu 22.04 we will only have Ruby 3.1+ available.

Ruby 3.1+ support on 22.04 might need a few trivial changes in this repo which I'll do soon.

eregon commented 2 years ago

jruby can't build on 22.04, because the ubuntu-22.04 image doesn't have java currently: https://github.com/actions/virtual-environments/issues/5490

Java is not available for Ubuntu 22 at the moment

truffleruby can't build on 22.04, because it needs OpenSSL 3 support first. EDIT: truffleruby 22.2 has OpenSSL 3 support, so that's available now.

So for now it will just be:

ruby:
"3.1.0", "3.1.1", "3.1.2", "3.2.0-preview1", "head", "debug", "truffleruby", "truffleruby+graalvm"
eregon commented 2 years ago

Those work from https://github.com/ruby/setup-ruby/releases/tag/v1.107.0 (ruby-head build in progress)

iBug commented 2 years ago

Especially versions before 3.1 seem complicated to support

I'm not sure what difficulties have been overcome, but Ubuntu's stock ruby package is 3.0.2. It also uses OpenSSL 3.0.

$ dpkg -L libruby3.0
...
/usr/lib/x86_64-linux-gnu/ruby/3.0.0/openssl.so
...

$ ldd /usr/lib/x86_64-linux-gnu/ruby/3.0.0/openssl.so
...
libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007fca63008000)
...

I may understand how Ruby 2.x would be difficult to build, but why would Ruby 3.0?

eregon commented 2 years ago

@iBug Read https://bugs.ruby-lang.org/issues/18658#note-8. Ruby 3.0 does not support OpenSSL 3.0, Ubuntu manually backported that but it's not something we can use or an official Ruby release tarball.

Watson1978 commented 2 years ago

What is the progress?

Looks like Ubuntu 22.04 will be officially started from August 8. https://github.com/actions/virtual-environments/issues/5998

eregon commented 2 years ago

Now that https://github.com/rbenv/ruby-build/pull/1974 is merged in ruby-build we should be able to build all/most Ruby versions on Ubuntu 22.04, I'll start the builds.

eregon commented 2 years ago

Done now, all versions are also built on Ubuntu 22.04. Some exceptions: preview/RC (except the latest preview), and old jruby/truffleruby releases, those I'll only build if needed.

Watson1978 commented 2 years ago

Thanks !!