[ruby]: add pre-compiled binaries for ruby 3.2; drop them for ruby 2.6 (#32089) (#32157)
[ruby]: add pre-compiled binaries for ruby 3.2; drop them for ruby 2.6
diff --git a/Rakefile b/Rakefile
index b5186dc..98d6aef 100755
--- a/Rakefile
+++ b/Rakefile
@@ -144,91 +144,75 @@
verbose = ENV['V'] || '0'
grpc_config = ENV['GRPC_CONFIG'] || 'opt'
- ruby_cc_versions = ['3.1.0', '3.0.0', '2.7.0', '2.6.0'].join(':')
+ ruby_cc_versions = ['3.2.0', '3.1.0', '3.0.0', '2.7.0'].join(':')
selected_plat = "#{args[:plat]}"
- if RUBY_PLATFORM =~ /darwin/
- if !selected_plat.empty? && selected_plat != 'darwin'
- fail "Cannot pass platform as an argument when on Darwin."
- end
+ # use env variable to set artifact build paralellism
+ nproc_override = ENV['GRPC_RUBY_BUILD_PROCS'] || `nproc`.strip
- FileUtils.touch 'grpc_c.32-msvcrt.ruby'
- FileUtils.touch 'grpc_c.64-msvcrt.ruby'
- FileUtils.touch 'grpc_c.64-ucrt.ruby'
- unless '2.5' == /(\d+\.\d+)/.match(RUBY_VERSION).to_s
- fail "rake gem:native (the rake task to build the binary packages) is being " \
- "invoked on macos with ruby #{RUBY_VERSION}. The ruby macos artifact " \
- "build should be running on ruby 2.5."
- end
- system "bundle exec rake cross native gem RUBY_CC_VERSION=#{ruby_cc_versions} V=#{verbose} GRPC_CONFIG=#{grpc_config}"
+ # propagate env variables with ccache configuration to the rake-compiler-dock docker container
+ # and setup ccache symlinks as needed.
+ prepare_ccache_cmd = "export GRPC_BUILD_ENABLE_CCACHE=\"#{ENV.fetch('GRPC_BUILD_ENABLE_CCACHE', '')}\" && "
+ prepare_ccache_cmd += "export CCACHE_SECONDARY_STORAGE=\"#{ENV.fetch('CCACHE_SECONDARY_STORAGE', '')}\" && "
+ prepare_ccache_cmd += "export PATH=\"$PATH:/usr/local/bin\" && "
+ prepare_ccache_cmd += "source tools/internal_ci/helper_scripts/prepare_ccache_symlinks_rc "
+
+ supported_windows_platforms = ['x86-mingw32', 'x64-mingw32', 'x64-mingw-ucrt']
+ supported_unix_platforms = ['x86_64-linux', 'x86-linux', 'x86_64-darwin', 'arm64-darwin']
+ supported_platforms = supported_windows_platforms + supported_unix_platforms
+
+ if selected_plat.empty?
+ # build everything
+ windows_platforms = supported_windows_platforms
+ unix_platforms = supported_unix_platforms
else
- # use env variable to set artifact build paralellism
- nproc_override = ENV['GRPC_RUBY_BUILD_PROCS'] || `nproc`.strip
-
- # propagate env variables with ccache configuration to the rake-compiler-dock docker container
- # and setup ccache symlinks as needed.
- prepare_ccache_cmd = "export GRPC_BUILD_ENABLE_CCACHE=\"#{ENV.fetch('GRPC_BUILD_ENABLE_CCACHE', '')}\" && "
- prepare_ccache_cmd += "export CCACHE_SECONDARY_STORAGE=\"#{ENV.fetch('CCACHE_SECONDARY_STORAGE', '')}\" && "
- prepare_ccache_cmd += "export PATH=\"$PATH:/usr/local/bin\" && "
- prepare_ccache_cmd += "source tools/internal_ci/helper_scripts/prepare_ccache_symlinks_rc "
-
- supported_windows_platforms = ['x86-mingw32', 'x64-mingw32', 'x64-mingw-ucrt']
- supported_unix_platforms = ['x86_64-linux', 'x86-linux', 'x86_64-darwin', 'arm64-darwin']
- supported_platforms = supported_windows_platforms + supported_unix_platforms
-
- if selected_plat.empty?
- # build everything
- windows_platforms = supported_windows_platforms
- unix_platforms = supported_unix_platforms
+ # build only selected platform
+ if supported_windows_platforms.include?(selected_plat)
+ windows_platforms = [selected_plat]
+ unix_platforms = []
+ elsif supported_unix_platforms.include?(selected_plat)
+ windows_platforms = []
+ unix_platforms = [selected_plat]
else
- # build only selected platform
- if supported_windows_platforms.include?(selected_plat)
- windows_platforms = [selected_plat]
- unix_platforms = []
- elsif supported_unix_platforms.include?(selected_plat)
- windows_platforms = []
- unix_platforms = [selected_plat]
- else
- fail "Unsupported platform '#{selected_plat}' passed as an argument."
- end
+ fail "Unsupported platform '#{selected_plat}' passed as an argument."
end
+ end
- # Create the windows dlls or create the empty placeholders
- Rake::Task['dlls'].execute(plat: windows_platforms)
+ # Create the windows dlls or create the empty placeholders
+ Rake::Task['dlls'].execute(plat: windows_platforms)
- windows_platforms.each do |plat|
- run_rake_compiler(plat, <<~EOT)
- #{prepare_ccache_cmd} && \
- gem update --system --no-document && \
- bundle && \
- bundle exec rake clean && \
- bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \
- RUBY_CC_VERSION=#{ruby_cc_versions} \
- V=#{verbose} \
- GRPC_CONFIG=#{grpc_config} \
- GRPC_RUBY_BUILD_PROCS=#{nproc_override}
- EOT
- end
+ windows_platforms.each do |plat|
+ run_rake_compiler(plat, <<~EOT)
+ #{prepare_ccache_cmd} && \
+ gem update --system --no-document && \
+ bundle && \
+ bundle exec rake clean && \
+ bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \
+ RUBY_CC_VERSION=#{ruby_cc_versions} \
+ V=#{verbose} \
+ GRPC_CONFIG=#{grpc_config} \
+ GRPC_RUBY_BUILD_PROCS=#{nproc_override}
+ EOT
+ end
- # Truncate grpc_c.*.ruby files because they're for Windows only and we don't want
- # them to take up space in the gems that don't target windows.
- File.truncate('grpc_c.32-msvcrt.ruby', 0)
- File.truncate('grpc_c.64-msvcrt.ruby', 0)
- File.truncate('grpc_c.64-ucrt.ruby', 0)
+ # Truncate grpc_c.*.ruby files because they're for Windows only and we don't want
+ # them to take up space in the gems that don't target windows.
+ File.truncate('grpc_c.32-msvcrt.ruby', 0)
+ File.truncate('grpc_c.64-msvcrt.ruby', 0)
+ File.truncate('grpc_c.64-ucrt.ruby', 0)
- unix_platforms.each do |plat|
- run_rake_compiler(plat, <<~EOT)
- #{prepare_ccache_cmd} && \
- gem update --system --no-document && \
- bundle && \
- bundle exec rake clean && \
- bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \
- RUBY_CC_VERSION=#{ruby_cc_versions} \
- V=#{verbose} \
- GRPC_CONFIG=#{grpc_config} \
- GRPC_RUBY_BUILD_PROCS=#{nproc_override}
- EOT
- end
+ unix_platforms.each do |plat|
+ run_rake_compiler(plat, <<~EOT)
+ #{prepare_ccache_cmd} && \
+ gem update --system --no-document && \
+ bundle && \
+ bundle exec rake clean && \
+ bundle exec rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem pkg/#{spec.full_name}.gem \
+ RUBY_CC_VERSION=#{ruby_cc_versions} \
+ V=#{verbose} \
+ GRPC_CONFIG=#{grpc_config} \
+ GRPC_RUBY_BUILD_PROCS=#{nproc_override}
+ EOT
end
end
diff --git a/grpc.gemspec b/grpc.gemspec
index 09e8474..d91c282 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -38,8 +38,8 @@
s.add_development_dependency 'logging', '~> 2.0'
s.add_development_dependency 'simplecov', '~> 0.22'
s.add_development_dependency 'rake', '~> 13.0'
- s.add_development_dependency 'rake-compiler', '<= 1.1.1'
- s.add_development_dependency 'rake-compiler-dock', '~> 1.2'
+ s.add_development_dependency 'rake-compiler', '~> 1.2.1'
+ s.add_development_dependency 'rake-compiler-dock', '~> 1.3'
s.add_development_dependency 'rspec', '~> 3.6'
s.add_development_dependency 'rubocop', '~> 1.41.0'
s.add_development_dependency 'signet', '~> 0.7'
diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb
index 8b33700..e0974c4 100644
--- a/src/ruby/ext/grpc/extconf.rb
+++ b/src/ruby/ext/grpc/extconf.rb
@@ -187,3 +187,22 @@
end
File.rename('Makefile.new', 'Makefile')
end
+if ENV['GRPC_RUBY_TEST_ONLY_WORKAROUND_MAKE_INSTALL_BUG']
+ # Note: this env var setting is intended to work around a problem observed
+ # with the ginstall command on grpc's macos automated test infrastructure,
+ # and is not guaranteed to work in the wild.
+ # Also see https://github.com/rake-compiler/rake-compiler/issues/210.
+ puts 'Overriding the generated Makefile install target to use cp'
+ File.open('Makefile.new', 'w') do |o|
+ File.foreach('Makefile') do |i|
+ if i.start_with?('INSTALL_PROG = ')
+ override = 'INSTALL_PROG = cp'
+ puts "Replacing generated Makefile line: |#{i}|, with: |#{override}|"
+ o.puts override
+ else
+ o.puts i
+ end
+ end
+ end
+ File.rename('Makefile.new', 'Makefile')
+end
diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template
index b5785b5..e15bb18 100644
--- a/templates/grpc.gemspec.template
+++ b/templates/grpc.gemspec.template
@@ -40,8 +40,8 @@
s.add_development_dependency 'logging', '~> 2.0'
s.add_development_dependency 'simplecov', '~> 0.22'
s.add_development_dependency 'rake', '~> 13.0'
- s.add_development_dependency 'rake-compiler', '<= 1.1.1'
- s.add_development_dependency 'rake-compiler-dock', '~> 1.2'
+ s.add_development_dependency 'rake-compiler', '~> 1.2.1'
+ s.add_development_dependency 'rake-compiler-dock', '~> 1.3'
s.add_development_dependency 'rspec', '~> 3.6'
s.add_development_dependency 'rubocop', '~> 1.41.0'
s.add_development_dependency 'signet', '~> 0.7'
diff --git a/third_party/rake-compiler-dock/rake_arm64-darwin.current_version b/third_party/rake-compiler-dock/rake_arm64-darwin.current_version
index 4bf70a3..2486ce5 100644
--- a/third_party/rake-compiler-dock/rake_arm64-darwin.current_version
+++ b/third_party/rake-compiler-dock/rake_arm64-darwin.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin:69742889e98f7c0dc2d26cc89a43017179515167@sha256:d1b0c35c651a1911ba290184f63c5e81b17fd20291acea20c91e9f2c2d7c8d50
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin:ef464134d73d8d261b7edb53b737c2dc797f7cee@sha256:e0eb1f9f632fb18d4f244b7297d1a5e7cf60ae58e649ac5b2f8ac6266ea07128
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_arm64-darwin/Dockerfile b/third_party/rake-compiler-dock/rake_arm64-darwin/Dockerfile
index 0782c7e..73a7f8b 100644
--- a/third_party/rake-compiler-dock/rake_arm64-darwin/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_arm64-darwin/Dockerfile
@@ -1 +1 @@
-FROM larskanis/rake-compiler-dock-mri-arm64-darwin:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-arm64-darwin
diff --git a/third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version b/third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version
index 1be72dc..48d7436 100644
--- a/third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version
+++ b/third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt:0b8bed3e125d8952ccc8938f905d9792c84077f5@sha256:ab967122a47b0385a1e66b5b91693d971468a276000ac1c066c54bef577ef4b7
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt:3c2e3bdaf402bb1dd329309b8682890cd3cca19f@sha256:63490b0000c6011a19983fef637efc69a2ae0f67b7a4e29cd36db53c881e908d
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x64-mingw-ucrt/Dockerfile b/third_party/rake-compiler-dock/rake_x64-mingw-ucrt/Dockerfile
index 141b6f6..bac932f 100644
--- a/third_party/rake-compiler-dock/rake_x64-mingw-ucrt/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x64-mingw-ucrt/Dockerfile
@@ -1,4 +1,4 @@
-FROM larskanis/rake-compiler-dock-mri-x64-mingw-ucrt:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x64-mingw-ucrt
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done
diff --git a/third_party/rake-compiler-dock/rake_x64-mingw32.current_version b/third_party/rake-compiler-dock/rake_x64-mingw32.current_version
index a895f4c..107eda2 100644
--- a/third_party/rake-compiler-dock/rake_x64-mingw32.current_version
+++ b/third_party/rake-compiler-dock/rake_x64-mingw32.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32:47e598526ac5068d348e29237e1dc84e3d01afab@sha256:6f4386f2954821c199d104e9dfe250ef99fdb74f4840311f8a7812c462629a83
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32:f24841cbe57e448e0cc98498a0a7d9467f91627b@sha256:63ece6e9b336b7cbf66eaa0201505b0579ac06cd7802f19b44c3a816d5617c17
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x64-mingw32/Dockerfile b/third_party/rake-compiler-dock/rake_x64-mingw32/Dockerfile
index 4c93417..62afec1c 100644
--- a/third_party/rake-compiler-dock/rake_x64-mingw32/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x64-mingw32/Dockerfile
@@ -1,4 +1,4 @@
-FROM larskanis/rake-compiler-dock-mri-x64-mingw32:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x64-mingw32
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done
diff --git a/third_party/rake-compiler-dock/rake_x86-linux.current_version b/third_party/rake-compiler-dock/rake_x86-linux.current_version
index 1f5d21c..34644cd 100644
--- a/third_party/rake-compiler-dock/rake_x86-linux.current_version
+++ b/third_party/rake-compiler-dock/rake_x86-linux.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux:e8ffbe97d21d829ae38ab10ef65cf38e542ee8b9@sha256:dab334b2c651e78f82c9ff7141699ac23365676f3972cff07382f7146702b88f
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux:921974cb95c4ca19ef79be0745df716a9bbf1211@sha256:71e3afca0843bf7bd5da7fa04bff40ad976e76aa5867936166b30251d0a692d8
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x86-linux/Dockerfile b/third_party/rake-compiler-dock/rake_x86-linux/Dockerfile
index 6d7f173..f937a23 100644
--- a/third_party/rake-compiler-dock/rake_x86-linux/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x86-linux/Dockerfile
@@ -1,4 +1,4 @@
-FROM larskanis/rake-compiler-dock-mri-x86-linux:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x86-linux
#=================
# Install ccache
diff --git a/third_party/rake-compiler-dock/rake_x86-mingw32.current_version b/third_party/rake-compiler-dock/rake_x86-mingw32.current_version
index 9de71c2..dbb7e56 100644
--- a/third_party/rake-compiler-dock/rake_x86-mingw32.current_version
+++ b/third_party/rake-compiler-dock/rake_x86-mingw32.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32:91c4f180dce2a3f4fc9bcf66dc0818f0d8c81415@sha256:09b3f47c5eb8f6b686af4d6cba636637ab310ef1dcfa30e05bb00b183b1b619b
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32:bf745e7ec6ab838e4f982e25f086d6c8667f71cc@sha256:629be8f57e2d50b123584f2cfa00ff5b968cc2cc3b2a6b874acd07100a3eb96d
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x86-mingw32/Dockerfile b/third_party/rake-compiler-dock/rake_x86-mingw32/Dockerfile
index 0b02ed7..88ff355 100644
--- a/third_party/rake-compiler-dock/rake_x86-mingw32/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x86-mingw32/Dockerfile
@@ -1,4 +1,4 @@
-FROM larskanis/rake-compiler-dock-mri-x86-mingw32:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x86-mingw32
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done
diff --git a/third_party/rake-compiler-dock/rake_x86_64-darwin.current_version b/third_party/rake-compiler-dock/rake_x86_64-darwin.current_version
index 2bfc57c..2823417 100644
--- a/third_party/rake-compiler-dock/rake_x86_64-darwin.current_version
+++ b/third_party/rake-compiler-dock/rake_x86_64-darwin.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin:56f7dd2c720f4c10a6d4be6a869b11ec1e39a0f3@sha256:b086e560ef215180b843d1d7fe48e2cfbed3112ec4ab57e655ad5dfb61090726
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin:03fc718cb9cc9a32b16f1ed270b12ba77b862a05@sha256:8dd11cad778d9fc01c3555a57254016f5db7227309d24f50a192a6db80d4a51c
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x86_64-darwin/Dockerfile b/third_party/rake-compiler-dock/rake_x86_64-darwin/Dockerfile
index 0418aff..d57ed77 100644
--- a/third_party/rake-compiler-dock/rake_x86_64-darwin/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x86_64-darwin/Dockerfile
@@ -1 +1 @@
-FROM larskanis/rake-compiler-dock-mri-x86_64-darwin:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x86_64-darwin
diff --git a/third_party/rake-compiler-dock/rake_x86_64-linux.current_version b/third_party/rake-compiler-dock/rake_x86_64-linux.current_version
index 5d2a244..9ad6ef4 100644
--- a/third_party/rake-compiler-dock/rake_x86_64-linux.current_version
+++ b/third_party/rake-compiler-dock/rake_x86_64-linux.current_version
@@ -1 +1 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux:47c34d44a509c824ae84aaff82c14de5aa3bdc12@sha256:5c485b0a0e6bf5e0fc87122b3d49003a0d0aa30cbaca7250902f53823e50bc9c
\ No newline at end of file
+us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux:73e8372e1b5c1c414a5a8c6b37e76ed0d60a26cc@sha256:9aa77587fa4d4c25c91d0ccca8eb806cf0738a4b67eb4b54d40324185658194e
\ No newline at end of file
diff --git a/third_party/rake-compiler-dock/rake_x86_64-linux/Dockerfile b/third_party/rake-compiler-dock/rake_x86_64-linux/Dockerfile
index a82d97f..35ba5d4 100644
--- a/third_party/rake-compiler-dock/rake_x86_64-linux/Dockerfile
+++ b/third_party/rake-compiler-dock/rake_x86_64-linux/Dockerfile
@@ -1,4 +1,4 @@
-FROM larskanis/rake-compiler-dock-mri-x86_64-linux:1.2.2
+FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.0-mri-x86_64-linux
#=================
# Install ccache
diff --git a/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6.current_version b/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6.current_version
deleted file mode 100644
index 266b98f..0000000
--- a/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6.current_version
+++ /dev/null
@@ -1 +0,0 @@
-us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_stretch_x64_ruby_2_6:4b215aa6d7029aaa63679881d54b8ca620e2d775@sha256:b9cc471908386767a9dbf3baffb7a67aa93c4cd1057c4ba8572c691c8ba4b3e6
\ No newline at end of file
diff --git a/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6/Dockerfile b/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6/Dockerfile
deleted file mode 100644
index eea189f..0000000
--- a/tools/dockerfile/distribtest/ruby_stretch_x64_ruby_2_6/Dockerfile
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2015 gRPC authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM debian:stretch
-
-# Install Git and basic packages.
-RUN apt-get update && apt-get install -y \
- gnupg2 \
- procps \
- curl \
- gcc && apt-get clean
-
-#==================
-# Ruby dependencies
-
-# Install rvm
-RUN gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
-RUN \curl -sSL https://get.rvm.io | bash -s stable
-
-# Install Ruby 2.6
-RUN /bin/bash -l -c "rvm install ruby-2.6.5"
-RUN /bin/bash -l -c "rvm use --default ruby-2.6.5"
-RUN /bin/bash -l -c "echo 'gem: --no-document' > ~/.gemrc"
-RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
-RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.6.5' >> ~/.bashrc"
-RUN /bin/bash -l -c "gem install bundler --no-document"
-
-RUN mkdir /var/local/jenkins
-
-# Define the default command.
-CMD ["bash"]
diff --git a/tools/run_tests/artifacts/distribtest_targets.py b/tools/run_tests/artifacts/distribtest_targets.py
index 963263f..8f0561b 100644
--- a/tools/run_tests/artifacts/distribtest_targets.py
+++ b/tools/run_tests/artifacts/distribtest_targets.py
@@ -434,12 +434,6 @@
RubyDistribTest('linux',
'x64',
'stretch',
- ruby_version='ruby_2_6',
- source=True,
- presubmit=True),
- RubyDistribTest('linux',
- 'x64',
- 'stretch',
ruby_version='ruby_2_7',
presubmit=True),
RubyDistribTest('linux', 'x64', 'centos7'),
diff --git a/tools/run_tests/helper_scripts/build_ruby.sh b/tools/run_tests/helper_scripts/build_ruby.sh
index 48a5bb5..3b86381 100755
--- a/tools/run_tests/helper_scripts/build_ruby.sh
+++ b/tools/run_tests/helper_scripts/build_ruby.sh
@@ -28,6 +28,12 @@
cd "$(dirname "$0")/../../.."
rm -rf ./tmp
+
+SYSTEM=$(uname | cut -f 1 -d_)
+if [ "$SYSTEM" == "Darwin" ]; then
+ # work around https://github.com/rake-compiler/rake-compiler/issues/210
+ export GRPC_RUBY_TEST_ONLY_WORKAROUND_MAKE_INSTALL_BUG=true
+fi
bundle exec rake compile
# build grpc_ruby_plugin