zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2624) Add test script for pull requests
Date Sun, 06 Nov 2016 05:36:58 GMT

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15641204#comment-15641204
] 

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_r86679336
  
    --- 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
    +  fi
    +  return $?
    +}
    +
    +###############################################################################
    +setup () {
    +  ### exit if warnings are NOT defined in the properties file
    +  if [ -z "$OK_FINDBUGS_WARNINGS" ] || [[ -z "$OK_JAVADOC_WARNINGS" ]] || [[ -z $OK_RELEASEAUDIT_WARNINGS
]]; then
    +    echo "Please define the following properties in test-patch.properties file"
    +	 echo  "OK_FINDBUGS_WARNINGS"
    --- End diff --
    
    what's going on with indentation?


> 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)

Mime
View raw message