Added Ruby 2.1, Oracle Java, and C#.
This commit is contained in:
parent
78f9b68600
commit
ffc811804f
3 changed files with 76 additions and 21 deletions
|
@ -30,9 +30,19 @@
|
|||
# Base Dockerfile for gRPC dev images
|
||||
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 && \
|
||||
gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C && \
|
||||
gpg --export DB82666C | apt-key add -
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
|
||||
|
||||
# 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
|
||||
# and the C++ build
|
||||
|
@ -52,12 +62,19 @@ RUN apt-get update && apt-get install -y \
|
|||
libtool \
|
||||
make \
|
||||
parallel \
|
||||
wget \
|
||||
# -- For csharp --
|
||||
mono-devel \
|
||||
referenceassemblies-pcl \
|
||||
nunit \
|
||||
# -- For all Java builds -- \
|
||||
maven \
|
||||
# -- For java_jdk6 -- \
|
||||
# oops! not in jessie. too old? openjdk-6-jdk \
|
||||
# -- For java_jdk7 -- \
|
||||
openjdk-7-jdk \
|
||||
# -- For java_oracle7 -- \
|
||||
oracle-java7-installer \
|
||||
# -- For python / python_cpp -- \
|
||||
python-setuptools \
|
||||
python-pip \
|
||||
|
@ -65,14 +82,40 @@ RUN apt-get update && apt-get install -y \
|
|||
python2.6-dev \
|
||||
python3.3-dev \
|
||||
python3.4-dev \
|
||||
# -- For Ruby --
|
||||
ruby \
|
||||
&& 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
|
||||
# to get updates from pip.
|
||||
|
||||
RUN pip install pip --upgrade
|
||||
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
|
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
|
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/g++
|
||||
|
|
|
@ -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
|
||||
# fails.
|
||||
|
||||
parallel $TEST_SCRIPT ::: \
|
||||
parallel --results $OUTPUT_DIR $TEST_SCRIPT ::: \
|
||||
csharp \
|
||||
java_jdk7 \
|
||||
javanano_jdk7 \
|
||||
java_oracle7 \
|
||||
javanano_oracle7 \
|
||||
python \
|
||||
python_cpp
|
||||
python_cpp \
|
||||
ruby21
|
||||
|
||||
# java_jdk6 \
|
||||
|
||||
find $OUTPUT_DIR
|
||||
|
|
|
@ -45,16 +45,20 @@ build_csharp() {
|
|||
# need to really build protoc, but it's simplest to keep with the
|
||||
# conventions of the other builds.
|
||||
internal_build_cpp
|
||||
NUGET=/usr/local/bin/nuget.exe
|
||||
|
||||
# Install latest version of Mono
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
|
||||
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 update -qq
|
||||
sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit
|
||||
wget www.nuget.org/NuGet.exe -O nuget.exe
|
||||
if [ "$TRAVIS" == "true" ]; then
|
||||
# Install latest version of Mono
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
|
||||
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 update -qq
|
||||
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
|
||||
cd conformance && make test_csharp && cd ..
|
||||
}
|
||||
|
@ -89,11 +93,13 @@ use_java() {
|
|||
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
|
||||
;;
|
||||
oracle7)
|
||||
sudo apt-get install python-software-properties # for apt-add-repository
|
||||
echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
|
||||
sudo debconf-set-selections
|
||||
yes | sudo apt-add-repository ppa:webupd8team/java
|
||||
yes | sudo apt-get install oracle-java7-installer
|
||||
if [ "$TRAVIS" == "true" ]; then
|
||||
sudo apt-get install python-software-properties # for apt-add-repository
|
||||
echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
|
||||
sudo debconf-set-selections
|
||||
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
|
||||
;;
|
||||
esac
|
||||
|
@ -322,10 +328,10 @@ Usage: $0 { cpp |
|
|||
objectivec_osx |
|
||||
python |
|
||||
python_cpp |
|
||||
ruby_19 |
|
||||
ruby_20 |
|
||||
ruby_21 |
|
||||
ruby_22 |
|
||||
ruby19 |
|
||||
ruby20 |
|
||||
ruby21 |
|
||||
ruby22 |
|
||||
jruby }
|
||||
"
|
||||
exit 1
|
||||
|
|
Loading…
Add table
Reference in a new issue