[
https://issues.apache.org/jira/browse/ZOOKEEPER-2624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15641205#comment-15641205
]
ASF GitHub Bot commented on ZOOKEEPER-2624:
-------------------------------------------
Github user breed commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/97#discussion_r86679277
--- Diff: src/java/test/bin/test-github-pr.sh ---
@@ -0,0 +1,612 @@
+#!/usr/bin/env bash
+# Licensed 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.
+
+
+#set -x
+
+### Setup some variables.
+### GIT_COMMIT and BUILD_URL are set by Hudson if it is run by patch
process
+### Read variables from properties file
+. `dirname $0`/test-patch.properties
+
+###############################################################################
+parseArgs() {
+ case "$1" in
+ QABUILD)
+ ### Set QABUILD to true to indicate that this script is being run by
Hudson
+ QABUILD=true
+ if [[ $# != 14 ]] ; then
+ echo "ERROR: usage $0 QABUILD <PATCH_DIR> <PS_CMD> <WGET_CMD>
<JIRACLI> <GIT_CMD> <GREP_CMD> <PATCH_CMD> <FINDBUGS_HOME> <FORREST_HOME>
<WORKSPACE_BASEDIR> <JIRA_PASSWD> <JAVA5_HOME> <CURL_CMD>"
+ cleanupAndExit 0
+ fi
+ PATCH_DIR=$2
+ PS=$3
+ WGET=$4
+ JIRACLI=$5
+ GIT=$6
+ GREP=$7
+ PATCH=$8
+ FINDBUGS_HOME=$9
+ FORREST_HOME=${10}
+ BASEDIR=${11}
+ JIRA_PASSWD=${12}
+ JAVA5_HOME=${13}
+ CURL=${14}
+ if [ ! -e "$PATCH_DIR" ] ; then
+ mkdir -p $PATCH_DIR
+ fi
+
+ ## Obtain PR number and title
+ PULLREQUEST_ID=${GIT_PR_NUMBER}
+ PULLREQUEST_TITLE="${GIT_PR_TITLE}"
+
+ ## Extract jira number from PR title
+ defect=${PULLREQUEST_TITLE%%:*}
+
+ echo "Pull request id: ${PULLREQUEST_ID}"
+ echo "Pull request title: ${PULLREQUEST_TITLE}"
+ echo "Defect number: ${defect}"
+ JIRA_COMMENT="GitHub Pull Request ${PULLREQUEST_NUMBER} Build
+ "
+ ;;
+ DEVELOPER)
+ ### Set QABUILD to false to indicate that this script is being run
by a developer
+ QABUILD=false
+ if [[ $# != 10 ]] ; then
+ echo "ERROR: usage $0 DEVELOPER <GIT_PR_URL> <SCRATCH_DIR>
<GIT_CMD> <GREP_CMD> <PATCH_CMD> <FINDBUGS_HOME> <FORREST_HOME>
<WORKSPACE_BASEDIR> <JAVA5_HOME>"
+ cleanupAndExit 0
+ fi
+ PATCH_DIR=$3
+ PATCH_FILE=${PATCH_DIR}/patch
+ curl -L $2.diff > ${PATCH_FILE}
+ ### PATCH_FILE contains the location of the patchfile
+ if [[ ! -e "$PATCH_FILE" ]] ; then
+ echo "Unable to locate the patch file $PATCH_FILE"
+ cleanupAndExit 0
+ fi
+ ### Check if $PATCH_DIR exists. If it does not exist, create a new
directory
+ if [[ ! -e "$PATCH_DIR" ]] ; then
+ mkdir "$PATCH_DIR"
+ if [[ $? == 0 ]] ; then
+ echo "$PATCH_DIR has been created"
+ else
+ echo "Unable to create $PATCH_DIR"
+ cleanupAndExit 0
+ fi
+ fi
+ GIT=$4
+ GREP=$5
+ PATCH=$6
+ FINDBUGS_HOME=$7
+ FORREST_HOME=$8
+ BASEDIR=$9
+ JAVA5_HOME=${10}
+ ### Obtain the patch filename to append it to the version number
+ local subject=`grep "Subject:" ${PATCH_FILE}`
+ local length=`expr match ${subject} ZOOKEEPER-[0-9]*`
+ local position=`expr index ${subject} ZOOKEEPER-`
+ defect=${${subject:$position:$length}#ZOOKEEPER-}
+ ;;
+ *)
+ echo "ERROR: usage $0 QABUILD [args] | DEVELOPER [args]"
+ cleanupAndExit 0
+ ;;
+ esac
+}
+
+###############################################################################
+checkout () {
+ echo ""
+ echo ""
+ echo
"======================================================================"
+ echo
"======================================================================"
+ echo " Testing patch for pull request ${PULLREQUEST_ID}."
+ echo
"======================================================================"
+ echo
"======================================================================"
+ echo ""
+ echo ""
+ ### When run by a developer, if the workspace contains modifications, do
not continue
+ # Ref http://stackoverflow.com/a/2659808 for details on checking dirty
status
+ ${GIT} diff-index --quiet HEAD
+ if [[ $? -ne 0 ]] ; then
+ uncommitted=`${GIT} diff --name-only HEAD`
+ uncommitted="You have the following files with uncommitted
changes:${NEWLINE}${uncommitted}"
+ fi
+ untracked="$(${GIT} ls-files --exclude-standard --others)" && test -z
"${untracked}"
+ if [[ $? -ne 0 ]] ; then
+ untracked="You have untracked and unignored
files:${NEWLINE}${untracked}"
+ fi
+
+ if [[ $QABUILD == "false" ]] ; then
+ if [[ $uncommitted || $untracked ]] ; then
+ echo "ERROR: can't run in a workspace that contains the following
modifications"
+ echo ""
+ echo "${uncommitted}"
+ echo ""
+ echo "${untracked}"
+ cleanupAndExit 1
+ fi
+ else
+ # I don't believe we need to do anything here - the jenkins job will
+ # cleanup the environment for us ("cleanup before checkout" action)
+ # on the precommit jenkins job
+ echo
--- End diff --
is this echo here just to get around the syntax error? if so you can use :
instead
> Add test script for pull requests
> ---------------------------------
>
> Key: ZOOKEEPER-2624
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2624
> Project: ZooKeeper
> Issue Type: Improvement
> Components: scripts
> Reporter: Flavio Junqueira
> Assignee: Flavio Junqueira
>
> We need a script similar to {{test-patch.sh}} to handle QA builds for pull
> requests.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)