aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/jenkins
diff options
context:
space:
mode:
Diffstat (limited to 'tools/jenkins')
-rw-r--r--tools/jenkins/grpc_jenkins_slave/Dockerfile15
-rwxr-xr-xtools/jenkins/run_jenkins.sh31
2 files changed, 43 insertions, 3 deletions
diff --git a/tools/jenkins/grpc_jenkins_slave/Dockerfile b/tools/jenkins/grpc_jenkins_slave/Dockerfile
index c3722457db..b12c309e87 100644
--- a/tools/jenkins/grpc_jenkins_slave/Dockerfile
+++ b/tools/jenkins/grpc_jenkins_slave/Dockerfile
@@ -83,6 +83,7 @@ ENV NUGET mono /var/local/NuGet.exe
# Node dependencies
# Install nvm
+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"
@@ -115,5 +116,19 @@ RUN apt-get update && apt-get install -y \
# Install Python packages from PyPI
RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2
+##################
+# PHP dependencies
+
+# Install dependencies
+
+RUN /bin/bash -l -c "echo 'deb http://packages.dotdeb.org wheezy-php55 all' \
+ >> /etc/apt/sources.list.d/dotdeb.list"
+RUN /bin/bash -l -c "echo 'deb-src http://packages.dotdeb.org wheezy-php55 all' \
+ >> /etc/apt/sources.list.d/dotdeb.list"
+RUN wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
+
+RUN apt-get update && apt-get install -y \
+ git php5 php5-dev phpunit unzip
+
# Define the default command.
CMD ["bash"]
diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh
index a95819af60..763a930dd8 100755
--- a/tools/jenkins/run_jenkins.sh
+++ b/tools/jenkins/run_jenkins.sh
@@ -41,13 +41,38 @@ if [ "$platform" == "linux" ]
then
echo "building $language on Linux"
+ if [ "$ghprbPullId" != "" ]
+ then
+ # if we are building a pull request, grab corresponding refs.
+ FETCH_PULL_REQUEST_CMD="&& git fetch $GIT_URL refs/pull/$ghprbPullId/merge refs/pull/$ghprbPullId/head"
+ fi
+
+ # Make sure the CID file is gone.
+ rm -f docker.cid
+
# Run tests inside docker
- docker run grpc/grpc_jenkins_slave bash -c -l "git clone --recursive $GIT_URL /var/local/git/grpc \
- && cd /var/local/git/grpc && git checkout -f $GIT_COMMIT \
+ docker run --cidfile=docker.cid grpc/grpc_jenkins_slave bash -c -l "git clone --recursive $GIT_URL /var/local/git/grpc \
+ && cd /var/local/git/grpc \
+ $FETCH_PULL_REQUEST_CMD \
+ && git checkout -f $GIT_COMMIT \
&& git submodule update \
+ && pip install simplejson mako \
&& nvm use 0.12 \
&& rvm use ruby-2.1 \
- && tools/run_tests/run_tests.py -t -l $language"
+ && CONFIG=$config tools/run_tests/prepare_travis.sh \
+ && CPPFLAGS=-I/tmp/prebuilt/include tools/run_tests/run_tests.py -t -c $config -l $language" || DOCKER_FAILED="true"
+
+ DOCKER_CID=`cat docker.cid`
+ if [ "$DOCKER_FAILED" == "" ]
+ then
+ echo "Docker finished successfully, deleting the container $DOCKER_CID"
+ docker rm $DOCKER_CID
+ else
+ echo "Docker exited with failure, keeping container $DOCKER_CID."
+ echo "You can SSH to the worker and use 'docker start CID' and 'docker exec -i -t CID bash' to debug the problem."
+ exit 1
+ fi
+
elif [ "$platform" == "windows" ]
then
echo "building $language on Windows"