Commit ffc81180 authored by Josh Haberman's avatar Josh Haberman

Added Ruby 2.1, Oracle Java, and C#.

parent 78f9b686
...@@ -30,9 +30,19 @@ ...@@ -30,9 +30,19 @@
# Base Dockerfile for gRPC dev images # Base Dockerfile for gRPC dev images
FROM debian:latest FROM debian:latest
# Apt source for old Python versions.
RUN echo 'deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main' > /etc/apt/sources.list.d/deadsnakes.list && \ RUN echo 'deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main' > /etc/apt/sources.list.d/deadsnakes.list && \
gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
gpg --export DB82666C | apt-key add -
# Apt source for Oracle Java.
run echo 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' > /etc/apt/sources.list.d/webupd8team-java-trusty.list && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 && \
echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
# Apt source for Mono
run echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list && \
echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
# Install dependencies. We start with the basic ones require to build protoc # Install dependencies. We start with the basic ones require to build protoc
# and the C++ build # and the C++ build
...@@ -52,12 +62,19 @@ RUN apt-get update && apt-get install -y \ ...@@ -52,12 +62,19 @@ RUN apt-get update && apt-get install -y \
libtool \ libtool \
make \ make \
parallel \ parallel \
wget \
# -- For csharp --
mono-devel \
referenceassemblies-pcl \
nunit \
# -- For all Java builds -- \ # -- For all Java builds -- \
maven \ maven \
# -- For java_jdk6 -- \ # -- For java_jdk6 -- \
# oops! not in jessie. too old? openjdk-6-jdk \ # oops! not in jessie. too old? openjdk-6-jdk \
# -- For java_jdk7 -- \ # -- For java_jdk7 -- \
openjdk-7-jdk \ openjdk-7-jdk \
# -- For java_oracle7 -- \
oracle-java7-installer \
# -- For python / python_cpp -- \ # -- For python / python_cpp -- \
python-setuptools \ python-setuptools \
python-pip \ python-pip \
...@@ -65,14 +82,40 @@ RUN apt-get update && apt-get install -y \ ...@@ -65,14 +82,40 @@ RUN apt-get update && apt-get install -y \
python2.6-dev \ python2.6-dev \
python3.3-dev \ python3.3-dev \
python3.4-dev \ python3.4-dev \
# -- For Ruby --
ruby \
&& apt-get clean && apt-get clean
##################
# C# dependencies
RUN wget www.nuget.org/NuGet.exe -O /usr/local/bin/nuget.exe
##################
# Python dependencies
# These packages exist in apt-get, but their versions are too old, so we have # These packages exist in apt-get, but their versions are too old, so we have
# to get updates from pip. # to get updates from pip.
RUN pip install pip --upgrade RUN pip install pip --upgrade
RUN pip install virtualenv tox RUN pip install virtualenv tox
##################
# Ruby dependencies
# Install rvm
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
RUN \curl -sSL https://get.rvm.io | bash -s stable
# Install Ruby 2.1
RUN /bin/bash -l -c "rvm install ruby-2.1"
RUN /bin/bash -l -c "rvm use --default ruby-2.1"
RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.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.1' >> ~/.bashrc"
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
# Prepare ccache # Prepare ccache
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
RUN ln -s /usr/bin/ccache /usr/local/bin/g++ RUN ln -s /usr/bin/ccache /usr/local/bin/g++
......
...@@ -26,10 +26,16 @@ $TEST_SCRIPT cpp | tee $OUTPUT_DIR/1/cpp ...@@ -26,10 +26,16 @@ $TEST_SCRIPT cpp | tee $OUTPUT_DIR/1/cpp
# Other tests are run in parallel. The overall run fails if any one of them # Other tests are run in parallel. The overall run fails if any one of them
# fails. # fails.
parallel $TEST_SCRIPT ::: \ parallel --results $OUTPUT_DIR $TEST_SCRIPT ::: \
csharp \
java_jdk7 \ java_jdk7 \
javanano_jdk7 \ javanano_jdk7 \
java_oracle7 \
javanano_oracle7 \
python \ python \
python_cpp python_cpp \
ruby21
# java_jdk6 \ # java_jdk6 \
find $OUTPUT_DIR
...@@ -45,16 +45,20 @@ build_csharp() { ...@@ -45,16 +45,20 @@ build_csharp() {
# need to really build protoc, but it's simplest to keep with the # need to really build protoc, but it's simplest to keep with the
# conventions of the other builds. # conventions of the other builds.
internal_build_cpp internal_build_cpp
NUGET=/usr/local/bin/nuget.exe
# Install latest version of Mono if [ "$TRAVIS" == "true" ]; then
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF # Install latest version of Mono
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update -qq echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit sudo apt-get update -qq
wget www.nuget.org/NuGet.exe -O nuget.exe sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit
wget www.nuget.org/NuGet.exe -O nuget.exe
NUGET=../../nuget.exe
fi
(cd csharp/src; mono ../../nuget.exe restore) (cd csharp/src; mono $NUGET restore)
csharp/buildall.sh csharp/buildall.sh
cd conformance && make test_csharp && cd .. cd conformance && make test_csharp && cd ..
} }
...@@ -89,11 +93,13 @@ use_java() { ...@@ -89,11 +93,13 @@ use_java() {
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
;; ;;
oracle7) oracle7)
sudo apt-get install python-software-properties # for apt-add-repository if [ "$TRAVIS" == "true" ]; then
echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \ sudo apt-get install python-software-properties # for apt-add-repository
sudo debconf-set-selections echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
yes | sudo apt-add-repository ppa:webupd8team/java sudo debconf-set-selections
yes | sudo apt-get install oracle-java7-installer yes | sudo apt-add-repository ppa:webupd8team/java
yes | sudo apt-get install oracle-java7-installer
fi;
export PATH=/usr/lib/jvm/java-7-oracle/bin:$PATH export PATH=/usr/lib/jvm/java-7-oracle/bin:$PATH
;; ;;
esac esac
...@@ -322,10 +328,10 @@ Usage: $0 { cpp | ...@@ -322,10 +328,10 @@ Usage: $0 { cpp |
objectivec_osx | objectivec_osx |
python | python |
python_cpp | python_cpp |
ruby_19 | ruby19 |
ruby_20 | ruby20 |
ruby_21 | ruby21 |
ruby_22 | ruby22 |
jruby } jruby }
" "
exit 1 exit 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment