diff --git a/test/distrib/ruby/Gemfile b/test/distrib/ruby/Gemfile new file mode 100644 index 0000000000000000000000000000000000000000..96e68e9c34ac74f7a81f87cd86ef82e5668e1a0c --- /dev/null +++ b/test/distrib/ruby/Gemfile @@ -0,0 +1,11 @@ +# -*- ruby -*- +# encoding: utf-8 + +source 'https://rubygems.org/' + +# TODO(jtattermusch): don't hardcode the absolute path the local gem source +source "file:///var/local/git/grpc/gem_source" do + gem 'grpc' +end + +gemspec diff --git a/test/distrib/ruby/distribtest.gemspec b/test/distrib/ruby/distribtest.gemspec new file mode 100644 index 0000000000000000000000000000000000000000..d72892f46c398ff1b3944cdb87cc5f14a9fb7622 --- /dev/null +++ b/test/distrib/ruby/distribtest.gemspec @@ -0,0 +1,19 @@ +# -*- ruby -*- +# encoding: utf-8 + +Gem::Specification.new do |s| + s.name = 'distribtest' + s.version = '0.0.1' + s.authors = ['gRPC Authors'] + s.email = 'jtattermusch@google.com' + s.homepage = 'https://github.com/grpc/grpc' + s.summary = 'gRPC Distribution test' + + s.files = ['distribtest.rb'] + s.executables = ['distribtest.rb'] + s.platform = Gem::Platform::RUBY + + s.add_dependency 'grpc', '>=0' + + s.add_development_dependency 'bundler', '~> 1.7' +end diff --git a/test/distrib/ruby/distribtest.rb b/test/distrib/ruby/distribtest.rb new file mode 100755 index 0000000000000000000000000000000000000000..3f656a89f3acea5c2b5cffaf1865d48ed97742d1 --- /dev/null +++ b/test/distrib/ruby/distribtest.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby + +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +require 'grpc' + +# This code doesn't do much but makes sure the native extension is loaded +# which is what we are testing here. +ch = GRPC::Core::Channel.new('localhost:1000', nil, :this_channel_is_insecure) +ch.destroy + +puts "Success!" diff --git a/test/distrib/ruby/run_distrib_test.sh b/test/distrib/ruby/run_distrib_test.sh index ae409f8dc5e1d625561bd65f3f983f56ae473cc6..be60e44b63991be4ca84ea6aa2dae5b9992e7588 100755 --- a/test/distrib/ruby/run_distrib_test.sh +++ b/test/distrib/ruby/run_distrib_test.sh @@ -32,5 +32,13 @@ set -ex cd $(dirname $0) -# do something ruby-ish +# Create an indexed local gem source with gRPC gems to test +GEM_SOURCE=../../../gem_source +mkdir -p ${GEM_SOURCE}/gems +cp -r $EXTERNAL_GIT_ROOT/input_artifacts/*.gem ${GEM_SOURCE}/gems +gem install builder +gem generate_index --directory ${GEM_SOURCE} +bundle install + +bundle exec ./distribtest.rb diff --git a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile index fd2cf63a59e77bd2e03418def95f78eded4c02a7..f65b8690d7e9e69d9151fc54a1fc14bfabd0421a 100644 --- a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile @@ -29,4 +29,13 @@ FROM centos:6 -RUN yum install -y ruby +RUN yum install -y curl + +RUN yum install -y tar which + +# Install rvm +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 +RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby + +RUN /bin/bash -l -c "echo '. /etc/profile.d/rvm.sh' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install --update bundler" diff --git a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile index 5bb9bd6fa647ba7a19674268360bc7f59e24b10b..85650201fb9a0b46c261de5b06b91e0182b1c63e 100644 --- a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile @@ -30,3 +30,5 @@ FROM centos:7 RUN yum install -y ruby + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile index 9f23be986f1e0e7dfbe068977dfa1981951fd8f3..437337ed9a2488270a0d814ace0cb1fc9481b230 100644 --- a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile @@ -30,3 +30,5 @@ FROM fedora:20 RUN yum clean all && yum update -y && yum install -y ruby + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile index 57106a48946c3e8706ea34fb5e83ea65a53a8545..598dac5a11259268ec9d21152c427793991ea775 100644 --- a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile @@ -30,3 +30,5 @@ FROM fedora:21 RUN yum clean all && yum update -y && yum install -y ruby + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile index d770177381e4fdf081503001bae87554549987c8..58d3d9341a733c79268068b209de78842ecd862f 100644 --- a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile @@ -30,3 +30,5 @@ FROM fedora:22 RUN yum clean all && yum update -y && yum install -y ruby + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile index 2c9b78ed080aa8270a8de37ebf126a00b52bfd5f..9f07f51e5666a43600cb9d42ad9e6b3bd3e1ac04 100644 --- a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile @@ -30,3 +30,5 @@ FROM fedora:23 RUN yum clean all && yum update -y && yum install -y ruby + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile index 4784bd73b41a4bce96871fc892d55cb43538b117..cc377b7a589d5d6a4a39f34604168376e7f29da7 100644 --- a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile @@ -30,3 +30,5 @@ FROM debian:jessie RUN apt-get update && apt-get install -y ruby-full + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile index 4f649cbc0341cc65300e83cc8b3d5f8d212a3e33..3fe3e2bdced137ecf3af1d23426bb27c3a036068 100644 --- a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile @@ -30,3 +30,5 @@ FROM 32bit/debian:jessie RUN apt-get update && apt-get install -y ruby-full + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile index a2499509984b4499ad73914c32a9c194143e6fd1..c98d6911a383e90f9499c6367bb134f9ffa600a5 100644 --- a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile @@ -29,4 +29,17 @@ FROM opensuse:42.1 -RUN zypper --non-interactive install ruby +RUN zypper --non-interactive install curl + +RUN zypper --non-interactive install tar which + +RUN zypper --non-interactive install ca-certificates-mozilla + +# Install rvm +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 +RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby + +# OpenSUSE is a bit crazy and ignores .bashrc for login shell. +RUN /bin/bash -l -c "echo '. /etc/profile.d/rvm.sh' >> ~/.profile" + +RUN /bin/bash -l -c 'gem install --update bundler' diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile index 95b7702afb725a71a19997952b419cdbed130343..782368bf8d10a5f6e655dff2079de394723faa91 100644 --- a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile @@ -29,4 +29,11 @@ FROM ubuntu:12.04 -RUN apt-get update -y && apt-get install -y ruby-full +RUN apt-get update -y && apt-get install -y curl + +# Install rvm +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 +RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby + +RUN /bin/bash -l -c "echo '. /etc/profile.d/rvm.sh' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install --update bundler" diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile index 66ba01d37ed41efb2b63b4a852d0fc3679870d73..53fb4d5ab5e4f24060e2394566d9ebfb39824c08 100644 --- a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile @@ -29,4 +29,11 @@ FROM ubuntu:14.04 -RUN apt-get update -y && apt-get install -y ruby-full +RUN apt-get update -y && apt-get install -y curl + +# Install rvm +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 +RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby + +RUN /bin/bash -l -c "echo '. /etc/profile.d/rvm.sh' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install --update bundler" diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile index 81e7ca1d3c0e27bc60425ac4047b41a85aec4047..3225166e63518cf950c7b861b52ed85289101ee5 100644 --- a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile @@ -30,3 +30,5 @@ FROM ubuntu:15.04 RUN apt-get update -y && apt-get install -y ruby-full + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile index 37b897f0f559ff8d8dc9fb5f9f9c47ade0bb53db..df93360a641384205d45dca13b09ab44f3c4b7f8 100644 --- a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile @@ -30,3 +30,5 @@ FROM ubuntu:15.10 RUN apt-get update -y && apt-get install -y ruby-full + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile index 5c54b8f7546e8d438cf27d83733c7346b4125b78..f0c2e80ac64425d204368cc9cf3921bb0516cc6b 100644 --- a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile @@ -30,3 +30,5 @@ FROM ubuntu:16.04 RUN apt-get update -y && apt-get install -y ruby-full + +RUN gem install bundler diff --git a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile index 2e6593c230d08e7630de6ba290c7bf9d7532192f..ee4e0fc5de1da9d4da0df15661b11be30e2f2e2f 100644 --- a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile +++ b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile @@ -29,4 +29,13 @@ FROM debian:wheezy -RUN apt-get update && apt-get install -y ruby-full +RUN apt-get update && apt-get install -y curl + +RUN apt-get update && apt-get install -y procps + +# Install rvm +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 +RUN \curl -sSL https://get.rvm.io | bash -s stable --ruby + +RUN /bin/bash -l -c "echo '. /etc/profile.d/rvm.sh' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install --update bundler"