diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/jenkins/grpc_linuxbrew/Dockerfile | 40 | ||||
-rw-r--r-- | tools/jenkins/run_linuxbrew.sh | 24 |
2 files changed, 29 insertions, 35 deletions
diff --git a/tools/jenkins/grpc_linuxbrew/Dockerfile b/tools/jenkins/grpc_linuxbrew/Dockerfile index 039b12d49e..9b76e3cea0 100644 --- a/tools/jenkins/grpc_linuxbrew/Dockerfile +++ b/tools/jenkins/grpc_linuxbrew/Dockerfile @@ -33,50 +33,30 @@ FROM debian:jessie # Core dependencies RUN apt-get update && apt-get install -y \ - bzip2 curl g++ gawk git m4 make patch ruby tcl wget + bzip2 curl git ruby wget # Install linuxbrew -WORKDIR /home/linuxbrew ENV PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH -ENV SHELL /bin/bash RUN git clone https://github.com/Homebrew/linuxbrew.git /home/linuxbrew/.linuxbrew RUN brew doctor || true -# Install gRPC via linuxbrew -RUN curl -fsSL https://goo.gl/getgrpc | bash - - +# Python dependency +RUN apt-get update && apt-get install -y python-dev +RUN curl https://bootstrap.pypa.io/get-pip.py | python # NodeJS dependency -RUN curl -sL https://deb.nodesource.com/setup | bash - -RUN apt-get install -y nodejs - -# Install gRPC NodeJS via linuxbrew -RUN curl -fsSL https://goo.gl/getgrpc | bash -s nodejs - +RUN touch .profile +RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash +RUN /bin/bash -l -c "nvm install 0.12" # Ruby dependency RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 RUN /bin/bash -l -c "\curl -sSL https://get.rvm.io | bash -s stable" RUN /bin/bash -l -c "rvm install ruby-2.1" -RUN /bin/bash -l -c "echo 'export PATH=/home/linuxbrew/.linuxbrew/bin:$PATH' > ~/.bashrc" -RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" - -# Install gRPC Ruby via linuxbrew -RUN /bin/bash -l -c "curl -fsSL https://goo.gl/getgrpc | bash -s ruby" - # PHP dependency -RUN apt-get update && apt-get install -y \ - php5 php5-dev phpunit unzip - -# Install gRPC PHP via linuxbrew -RUN curl -fsSL https://goo.gl/getgrpc | bash -s php - +RUN apt-get update && apt-get install -y php5 php5-dev phpunit unzip -# Python dependency -RUN apt-get update && apt-get install -y \ - python-dev -RUN curl https://bootstrap.pypa.io/get-pip.py | python +RUN /bin/bash -l -c "echo 'export PATH=/home/linuxbrew/.linuxbrew/bin:\$PATH' >> ~/.bashrc" -# Install gRPC Python via linuxbrew -RUN curl -fsSL https://goo.gl/getgrpc | bash -s python +CMD ["bash"] diff --git a/tools/jenkins/run_linuxbrew.sh b/tools/jenkins/run_linuxbrew.sh index 74e7c78c3b..10c41b4099 100644 --- a/tools/jenkins/run_linuxbrew.sh +++ b/tools/jenkins/run_linuxbrew.sh @@ -28,14 +28,28 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# This script is invoked by Jenkins and triggers a test run based on -# env variable settings. +# This script is invoked by Jenkins and triggers a test run of +# linuxbrew installation of a selected language set -ex sha1=$(sha1sum tools/jenkins/grpc_linuxbrew/Dockerfile | cut -f1 -d\ ) DOCKER_IMAGE_NAME=grpc_linuxbrew_$sha1 -docker build -t $DOCKER_IMAGE_NAME tools/jenkins/grpc_linuxbrew \ - >> report.xml || DOCKER_FAILED="true" +docker build -t $DOCKER_IMAGE_NAME tools/jenkins/grpc_linuxbrew -echo "finished" +supported="python nodejs ruby php" + +if [ "$language" == "core" ]; then + command="curl -fsSL https://goo.gl/getgrpc | bash -" +elif [[ "$supported" =~ "$language" ]]; then + command="curl -fsSL https://goo.gl/getgrpc | bash -s $language" +else + echo "unsupported language $language" + exit 1 +fi + +docker run $DOCKER_IMAGE_NAME bash -l \ + -c "nvm use 0.12; \ + npm set unsafe-perm true; \ + rvm use ruby-2.1; \ + $command" |