aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdev/run-tests-jenkins85
1 files changed, 85 insertions, 0 deletions
diff --git a/dev/run-tests-jenkins b/dev/run-tests-jenkins
new file mode 100755
index 0000000000..8dda671e97
--- /dev/null
+++ b/dev/run-tests-jenkins
@@ -0,0 +1,85 @@
+#!/usr/bin/env bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Wrapper script that runs the Spark tests then reports QA results
+# to github via its API.
+
+# Go to the Spark project root directory
+FWDIR="$(cd `dirname $0`/..; pwd)"
+cd $FWDIR
+
+COMMENTS_URL="https://api.github.com/repos/apache/spark/issues/$ghprbPullId/comments"
+
+function post_message {
+ message=$1
+ data="{\"body\": \"$message\"}"
+ echo "Attempting to post to Github:"
+ echo "$data"
+
+ curl -D- -u x-oauth-basic:$GITHUB_OAUTH_KEY -X POST --data "$data" -H \
+ "Content-Type: application/json" \
+ $COMMENTS_URL | head -n 8
+}
+
+start_message="QA tests have started for PR $ghprbPullId."
+if [ "$sha1" == "$ghprbActualCommit" ]; then
+ start_message="$start_message This patch DID NOT merge cleanly! "
+else
+ start_message="$start_message This patch merges cleanly. "
+fi
+start_message="$start_message<br>View progress: "
+start_message="$start_message${BUILD_URL}consoleFull"
+
+post_message "$start_message"
+
+./dev/run-tests
+test_result="$?"
+
+result_message="QA results for PR $ghprbPullId:<br>"
+
+if [ "$test_result" -eq "0" ]; then
+ result_message="$result_message- This patch PASSES unit tests.<br>"
+else
+ result_message="$result_message- This patch FAILED unit tests.<br>"
+fi
+
+if [ "$sha1" != "$ghprbActualCommit" ]; then
+ result_message="$result_message- This patch merges cleanly<br>"
+ non_test_files=$(git diff master --name-only | grep -v "\/test" | tr "\n" " ")
+ new_public_classes=$(git diff master $non_test_files \
+ | grep -e "trait " -e "class " \
+ | grep -e "{" -e "(" \
+ | grep -v -e \@\@ -e private \
+ | grep \+ \
+ | sed "s/\+ *//" \
+ | tr "\n" "~" \
+ | sed "s/~/<br>/g")
+ if [ "$new_public_classes" == "" ]; then
+ result_message="$result_message- This patch adds no public classes<br>"
+ else
+ result_message="$result_message- This patch adds the following public classes (experimental):<br>"
+ result_message="$result_message$new_public_classes"
+ fi
+fi
+result_message="${result_message}<br>For more information see test ouptut:"
+result_message="${result_message}<br>${BUILD_URL}consoleFull"
+
+post_message "$result_message"
+
+exit $test_result