From 06e2fcc6c7c5ab13a8bf086291d5b8779e4d8f5c Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 6 Apr 2022 14:02:13 +0200 Subject: [PATCH] Support pre-built binaries for Ruby 3.1 (#29000) * Support pre-built binaries for Ruby 3.1 * use 3.1.0 * use 3.1.0 and install 3.1 in build files * fix * update gemspec template * fix naming of variable * Fix ruby 3.1 link Co-authored-by: Jan Tattermusch --- Rakefile | 2 +- grpc.gemspec | 2 +- templates/grpc.gemspec.template | 2 +- tools/distrib/build_ruby_environment_macos.sh | 17 +++++++++++++++-- .../helper_scripts/prepare_build_macos_rc | 2 +- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Rakefile b/Rakefile index 189d6d5d5dd..1b97d30546b 100755 --- a/Rakefile +++ b/Rakefile @@ -141,7 +141,7 @@ task 'gem:native', [:plat] do |t, args| verbose = ENV['V'] || '0' grpc_config = ENV['GRPC_CONFIG'] || 'opt' - ruby_cc_versions = ['3.0.0', '2.7.0', '2.6.0', '2.5.0'].join(':') + ruby_cc_versions = ['3.1.0', '3.0.0', '2.7.0', '2.6.0', '2.5.0'].join(':') selected_plat = "#{args[:plat]}" if RUBY_PLATFORM =~ /darwin/ diff --git a/grpc.gemspec b/grpc.gemspec index 9fecc8070e2..79b09cdd083 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -41,7 +41,7 @@ Gem::Specification.new do |s| s.add_development_dependency 'simplecov', '~> 0.14.1' s.add_development_dependency 'rake', '~> 13.0' s.add_development_dependency 'rake-compiler', '<= 1.1.1' - s.add_development_dependency 'rake-compiler-dock', '~> 1.1' + s.add_development_dependency 'rake-compiler-dock', '~> 1.2' s.add_development_dependency 'rspec', '~> 3.6' s.add_development_dependency 'rubocop', '~> 0.49.1' s.add_development_dependency 'signet', '~> 0.7' diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template index 961875f9e52..faf88f170ab 100644 --- a/templates/grpc.gemspec.template +++ b/templates/grpc.gemspec.template @@ -43,7 +43,7 @@ s.add_development_dependency 'simplecov', '~> 0.14.1' s.add_development_dependency 'rake', '~> 13.0' s.add_development_dependency 'rake-compiler', '<= 1.1.1' - s.add_development_dependency 'rake-compiler-dock', '~> 1.1' + s.add_development_dependency 'rake-compiler-dock', '~> 1.2' s.add_development_dependency 'rspec', '~> 3.6' s.add_development_dependency 'rubocop', '~> 0.49.1' s.add_development_dependency 'signet', '~> 0.7' diff --git a/tools/distrib/build_ruby_environment_macos.sh b/tools/distrib/build_ruby_environment_macos.sh index f97e4380eda..328dcf85044 100644 --- a/tools/distrib/build_ruby_environment_macos.sh +++ b/tools/distrib/build_ruby_environment_macos.sh @@ -51,8 +51,8 @@ EOF MAKE="make -j8" -# Install ruby 3.0.0 for rake-compiler -# Download ruby 3.0.0 sources outside of the cross-ruby.rake file, since the + +# Download ruby 3.0.0 and 3.1.0 sources outside of the cross-ruby.rake file, since the # latest rake-compiler/v1.1.1 cross-ruby.rake file requires tar.bz2 source # files. # TODO(apolcyn): remove this hack when tar.bz2 sources are available for ruby @@ -60,6 +60,19 @@ MAKE="make -j8" # https://stackoverflow.com/questions/65477613/rvm-where-is-ruby-3-0-0. set +x # rvm commands are very verbose source ~/.rvm/scripts/rvm +# Install ruby 3.1.0 for rake-compiler +echo "rvm use 3.1.0" +rvm use 3.1.0 +set -x +RUBY_3_1_0_TAR="${HOME}/.rake-compiler/sources/ruby-3.1.0.tar.gz" +mkdir -p "$(dirname $RUBY_3_1_0_TAR)" +curl -L "https://ftp.ruby-lang.org/pub/ruby/3.1/$(basename $RUBY_3_1_0_TAR)" -o "$RUBY_3_1_0_TAR" +ccache -c +ruby --version | grep 'ruby 3.1.0' +tools/run_tests/helper_scripts/bundle_install_wrapper.sh +bundle exec rake -f "$CROSS_RUBY" cross-ruby VERSION=3.1.0 HOST=x86_64-darwin11 MAKE="$MAKE" SOURCE="$RUBY_3_1_0_TAR" +echo "installed ruby 3.1.0 build targets" +# Install ruby 3.0.0 for rake-compiler echo "rvm use 3.0.0" rvm use 3.0.0 set -x diff --git a/tools/internal_ci/helper_scripts/prepare_build_macos_rc b/tools/internal_ci/helper_scripts/prepare_build_macos_rc index 1383535c7ac..8e68b31b554 100644 --- a/tools/internal_ci/helper_scripts/prepare_build_macos_rc +++ b/tools/internal_ci/helper_scripts/prepare_build_macos_rc @@ -78,7 +78,7 @@ then set +x source $HOME/.rvm/scripts/rvm - for RUBY_VERSION in 2.5.0 2.7.0 3.0.0; do + for RUBY_VERSION in 2.5.0 2.7.0 3.0.0 3.1.0; do echo "Installing ruby-${RUBY_VERSION}" time rvm install "ruby-${RUBY_VERSION}" done;