Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: third_party/grpc/tools/jenkins/run_distribution.sh

Issue 1932353002: Initial checkin of gRPC to third_party/ Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/grpc/tools/jenkins/run_distribtest.sh ('k') | third_party/grpc/tools/jenkins/run_interop.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/grpc/tools/jenkins/run_distribution.sh
diff --git a/third_party/grpc/tools/jenkins/run_distribution.sh b/third_party/grpc/tools/jenkins/run_distribution.sh
new file mode 100755
index 0000000000000000000000000000000000000000..446ce16703e8584980ec3db33db5feed327552fc
--- /dev/null
+++ b/third_party/grpc/tools/jenkins/run_distribution.sh
@@ -0,0 +1,144 @@
+#!/bin/bash
+# Copyright 2015-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.
+#
+# This script is invoked by Jenkins and triggers a test run of
+# linuxbrew installation of a selected language
+set -ex
+
+# Our homebrew installation script command, per language
+# Can be used in both linux and macos
+if [ "$language" == "core" ]; then
+ command="curl -fsSL https://goo.gl/getgrpc | bash -"
+elif [[ "python nodejs ruby php" =~ "$language" ]]; then
+ command="curl -fsSL https://goo.gl/getgrpc | bash -s $language"
+else
+ echo "unsupported language $language"
+ exit 1
+fi
+
+if [ "$platform" == "linux" ]; then
+
+ if [ "$dist_channel" == "homebrew" ]; then
+
+ sha1=$(sha1sum tools/dockerfile/grpc_linuxbrew/Dockerfile | cut -f1 -d\ )
+ DOCKER_IMAGE_NAME=grpc_linuxbrew_$sha1
+
+ # build docker image, contains all pre-requisites
+ docker build -t $DOCKER_IMAGE_NAME tools/dockerfile/grpc_linuxbrew
+
+ # run per-language homebrew installation script
+ docker run --rm=true $DOCKER_IMAGE_NAME bash -l \
+ -c "nvm use 0.12; \
+ npm set unsafe-perm true; \
+ rvm use ruby-2.1; \
+ $command"
+
+ else
+ echo "Unsupported $platform dist_channel $dist_channel"
+ exit 1
+ fi
+
+elif [ "$platform" == "macos" ]; then
+
+ if [ "$dist_channel" == "homebrew" ]; then
+
+ echo "Formulas installed by system-wide homebrew (before)"
+ brew list -l
+
+ # Save the original PATH so that we can run the system `brew` command
+ # again at the end of the script
+ export ORIGINAL_PATH=$PATH
+
+ # Set up temp directories for test installation of homebrew
+ brew_root=/tmp/homebrew-test-$language
+ rm -rf $brew_root
+ mkdir -p $brew_root
+ git clone https://github.com/Homebrew/homebrew.git $brew_root
+
+ # Make sure we are operating at the right copy of temp homebrew
+ # installation
+ export PATH=$brew_root/bin:$PATH
+
+ # Set up right environment for each language
+ case $language in
+ *python*)
+ rm -rf jenkins_python_venv
+ virtualenv jenkins_python_venv
+ source jenkins_python_venv/bin/activate
+ ;;
+ *nodejs*)
+ export PATH=$HOME/.nvm/versions/node/v0.12.7/bin:$PATH
+ ;;
+ *ruby*)
+ export PATH=/usr/local/rvm/rubies/ruby-2.2.1/bin:$PATH
+ ;;
+ *php*)
+ export CFLAGS="-Wno-parentheses-equality"
+ ;;
+ esac
+
+ # Run our homebrew installation script
+ bash -c "$command"
+
+ # Uninstall / clean up per-language modules/extensions after the test
+ case $language in
+ *python*)
+ deactivate
+ rm -rf jenkins_python_venv
+ ;;
+ *nodejs*)
+ npm list -g | grep grpc
+ npm uninstall -g grpc
+ ;;
+ *ruby*)
+ gem list | grep grpc
+ gem uninstall grpc
+ ;;
+ *php*)
+ rm grpc.so
+ ;;
+ esac
+
+ # Clean up
+ rm -rf $brew_root
+
+ echo "Formulas installed by system-wide homebrew (after, should be unaffected)"
+ export PATH=$ORIGINAL_PATH
+ brew list -l
+
+ else
+ echo "Unsupported $platform dist_channel $dist_channel"
+ exit 1
+ fi
+
+else
+ echo "unsupported platform $platform"
+ exit 1
+fi
« no previous file with comments | « third_party/grpc/tools/jenkins/run_distribtest.sh ('k') | third_party/grpc/tools/jenkins/run_interop.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698