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

ASF GitHub Bot commented on BAHIR-96:
-------------------------------------

Github user tzulitai commented on a diff in the pull request:

    https://github.com/apache/bahir-flink/pull/14#discussion_r108085115
  
    --- Diff: dev/release-build.sh ---
    @@ -0,0 +1,330 @@
    +#!/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.
    +#
    +
    +function exit_with_usage {
    +  cat << EOF
    +
    +release-build - Creates build distributions from a git commit hash or from 
HEAD.
    +
    +SYNOPSIS
    +
    +usage: release-build.sh [--release-prepare | --release-publish | 
--release-snapshot]
    +
    +DESCRIPTION
    +
    +Use maven infrastructure to create a project release package and publish
    +to staging release location 
(https://dist.apache.org/repos/dist/dev/bahir-flink)
    +and maven staging release repository.
    +
    +--release-prepare --releaseVersion="1.0" 
--developmentVersion="1.1-SNAPSHOT" [--releaseRc="rc1"] [--tag="v1.0"] 
[--gitCommitHash="a874b73"]
    +This form execute maven release:prepare and upload the release candidate 
distribution
    +to the staging release location.
    +
    +--release-publish --gitCommitHash="a874b73"
    +Publish the maven artifacts of a release to the Apache staging maven 
repository.
    +Note that this will publish both Scala 2.10 and 2.11 artifacts.
    +
    +--release-snapshot [--gitCommitHash="a874b73"]
    +Publish the maven snapshot artifacts to Apache snapshots maven repository
    +Note that this will publish both Scala 2.10 and 2.11 artifacts.
    +
    +OPTIONS
    +
    +--releaseVersion     - Release identifier used when publishing
    +--developmentVersion - Release identifier used for next development cycle
    +--releaseRc          - Release RC identifier used when publishing, default 
'rc1'
    +--tag                - Release Tag identifier used when taging the 
release, default 'v$releaseVersion'
    +--gitCommitHash      - Release tag or commit to build from, default master 
HEAD
    +--dryRun             - Dry run only, mostly used for testing.
    +
    +A GPG passphrase is expected as an environment variable
    +
    +GPG_PASSPHRASE - Passphrase for GPG key used to sign release
    +
    +EXAMPLES
    +
    +release-build.sh --release-prepare --releaseVersion="1.0" 
--developmentVersion="1.1-SNAPSHOT"
    +release-build.sh --release-prepare --releaseVersion="1.0" 
--developmentVersion="1.1-SNAPSHOT" --releaseRc="rc1" --tag="v1.0"
    +release-build.sh --release-prepare --releaseVersion="1.0" 
--developmentVersion="1.1-SNAPSHOT" --releaseRc="rc1" --tag="v1.0"  
--gitCommitHash="a874b73" --dryRun
    +
    +release-build.sh --release-publish --gitCommitHash="a874b73"
    +release-build.sh --release-publish --gitTag="v1.0rc1"
    +
    +release-build.sh --release-snapshot
    +release-build.sh --release-snapshot --gitCommitHash="a874b73"
    +
    +EOF
    +  exit 1
    +}
    +
    +set -e
    +
    +if [ $# -eq 0 ]; then
    +  exit_with_usage
    +fi
    +
    +
    +# Process each provided argument configuration
    +while [ "${1+defined}" ]; do
    +  IFS="=" read -ra PARTS <<< "$1"
    +  case "${PARTS[0]}" in
    +    --release-prepare)
    +      GOAL="release-prepare"
    +      RELEASE_PREPARE=true
    +      shift
    +      ;;
    +    --release-publish)
    +      GOAL="release-publish"
    +      RELEASE_PUBLISH=true
    +      shift
    +      ;;
    +    --release-snapshot)
    +      GOAL="release-snapshot"
    +      RELEASE_SNAPSHOT=true
    +      shift
    +      ;;
    +    --gitCommitHash)
    +      GIT_REF="${PARTS[1]}"
    +      shift
    +      ;;
    +    --gitTag)
    +      GIT_TAG="${PARTS[1]}"
    +      shift
    +      ;;
    +    --releaseVersion)
    +      RELEASE_VERSION="${PARTS[1]}"
    +      shift
    +      ;;
    +    --developmentVersion)
    +      DEVELOPMENT_VERSION="${PARTS[1]}"
    +      shift
    +      ;;
    +    --releaseRc)
    +      RELEASE_RC="${PARTS[1]}"
    +      shift
    +      ;;
    +    --tag)
    +      RELEASE_TAG="${PARTS[1]}"
    +      shift
    +      ;;
    +    --dryRun)
    +      DRY_RUN="-DdryRun=true"
    +      shift
    +      ;;
    +
    +    *help* | -h)
    +      exit_with_usage
    +     exit 0
    +     ;;
    +    -*)
    +     echo "Error: Unknown option: $1" >&2
    +     exit 1
    +     ;;
    +    *)  # No more options
    +     break
    +     ;;
    +  esac
    +done
    +
    +
    +if [[ -z "$GPG_PASSPHRASE" ]]; then
    +    echo 'The environment variable GPG_PASSPHRASE is not set. Enter the 
passphrase to'
    +    echo 'unlock the GPG signing key that will be used to sign the 
release!'
    +    echo
    +    stty -echo && printf "GPG passphrase: " && read GPG_PASSPHRASE && 
printf '\n' && stty echo
    +  fi
    +
    +if [[ "$RELEASE_PREPARE" == "true" && -z "$RELEASE_VERSION" ]]; then
    +    echo "ERROR: --releaseVersion must be passed as an argument to run 
this script"
    +    exit_with_usage
    +fi
    +
    +if [[ "$RELEASE_PREPARE" == "true" && -z "$DEVELOPMENT_VERSION" ]]; then
    +    echo "ERROR: --developmentVersion must be passed as an argument to run 
this script"
    +    exit_with_usage
    +fi
    +
    +if [[ "$RELEASE_PUBLISH" == "true"  ]]; then
    +    if [[ "$GIT_REF" && "$GIT_TAG" ]]; then
    +        echo "ERROR: Only one argumented permitted when publishing : 
--gitCommitHash or --gitTag"
    +        exit_with_usage
    +    fi
    +    if [[ -z "$GIT_REF" && -z "$GIT_TAG" ]]; then
    +        echo "ERROR: --gitCommitHash OR --gitTag must be passed as an 
argument to run this script"
    +        exit_with_usage
    +    fi
    +fi
    +
    +if [[ "$RELEASE_PUBLISH" == "true" && "$DRY_RUN" ]]; then
    +    echo "ERROR: --dryRun not supported for --release-publish"
    +    exit_with_usage
    +fi
    +
    +if [[ "$RELEASE_SNAPSHOT" == "true" && "$DRY_RUN" ]]; then
    +    echo "ERROR: --dryRun not supported for --release-publish"
    +    exit_with_usage
    +fi
    +
    +# Commit ref to checkout when building
    +GIT_REF=${GIT_REF:-master}
    +if [[ "$RELEASE_PUBLISH" == "true" && "$GIT_TAG" ]]; then
    +    GIT_REF="tags/$GIT_TAG"
    +fi
    +
    +BASE_DIR=$(pwd)
    +
    +MVN="mvn"
    +PUBLISH_PROFILES="-Pdistribution"
    +
    +if [ -z "$RELEASE_RC" ]; then
    +  RELEASE_RC="rc1"
    +fi
    +
    +if [ -z "$RELEASE_TAG" ]; then
    +  RELEASE_TAG="v$RELEASE_VERSION-$RELEASE_RC"
    +fi
    +
    
+RELEASE_STAGING_LOCATION="https://dist.apache.org/repos/dist/dev/bahir-flink/";
    +
    +
    +echo "  "
    +echo "-------------------------------------------------------------"
    +echo "------- Release preparation with the following parameters ---"
    +echo "-------------------------------------------------------------"
    +echo "Executing           ==> $GOAL"
    +echo "Git reference       ==> $GIT_REF"
    +echo "release version     ==> $RELEASE_VERSION"
    +echo "development version ==> $DEVELOPMENT_VERSION"
    +echo "rc                  ==> $RELEASE_RC"
    +echo "tag                 ==> $RELEASE_TAG"
    +if [ "$DRY_RUN" ]; then
    +   echo "dry run ?           ==> true"
    +fi
    +echo "  "
    +echo "Deploying to :"
    +echo $RELEASE_STAGING_LOCATION
    +echo "  "
    +
    +function checkout_code {
    +    # Checkout code
    +    rm -rf target
    +    mkdir target
    +    cd target
    +    rm -rf bahir-flink
    +    git clone https://git-wip-us.apache.org/repos/asf/bahir-flink.git
    +    cd bahir-flink
    +    git checkout $GIT_REF
    +    git_hash=`git rev-parse --short HEAD`
    +    echo "Checked out Bahir Flink git hash $git_hash"
    +
    +    git clean -d -f -x
    +    #rm .gitignore
    +    #rm -rf .git
    +
    +    cd "$BASE_DIR" #return to base dir
    +}
    +
    +if [[ "$RELEASE_PREPARE" == "true" ]]; then
    +    echo "Preparing release $RELEASE_VERSION"
    +    # Checkout code
    +    checkout_code
    +    cd target/bahir-flink
    +
    +    # Build and prepare the release
    +    $MVN $PUBLISH_PROFILES release:clean release:prepare $DRY_RUN 
-Darguments="-Dgpg.passphrase=\"$GPG_PASSPHRASE\" -DskipTests" 
-DreleaseVersion="$RELEASE_VERSION" -DdevelopmentVersion="$DEVELOPMENT_VERSION" 
-Dtag="$RELEASE_TAG"
    +
    +    cd .. #exit bahir-flink
    +
    +    if [ -z "$DRY_RUN" ]; then
    +        svn co $RELEASE_STAGING_LOCATION svn-bahir-flink
    +        mkdir -p svn-bahir-flink/$RELEASE_VERSION-$RELEASE_RC
    +        cp bahir-flink/distribution/target/*.tar.gz 
svn-bahir-flink/$RELEASE_VERSION-$RELEASE_RC/
    +        cp bahir-flink/distribution/target/*.zip    
svn-bahir-flink/$RELEASE_VERSION-$RELEASE_RC/
    +
    +        cd svn-bahir-flink/$RELEASE_VERSION-$RELEASE_RC/
    +        for i in *.zip *.gz; do gpg --output $i.asc --detach-sig --armor 
$i; done
    +        for i in *.zip *.gz; do openssl md5 -hex $i | sed 
's/MD5(\([^)]*\))= \([0-9a-f]*\)/\2 *\1/' > $i.md5; done
    +
    +        cd .. #exit $RELEASE_VERSION-$RELEASE_RC/
    +
    +        svn add $RELEASE_VERSION-$RELEASE_RC/
    +        svn ci -m"Apache Bahir Flink Extensions 
$RELEASE_VERSION-$RELEASE_RC"
    --- End diff --
    
    That sounds better, will change this!


> Add a "release-build.sh" script for bahir-flink
> -----------------------------------------------
>
>                 Key: BAHIR-96
>                 URL: https://issues.apache.org/jira/browse/BAHIR-96
>             Project: Bahir
>          Issue Type: Task
>          Components: Flink Streaming Connectors
>            Reporter: Tzu-Li (Gordon) Tai
>            Assignee: Tzu-Li (Gordon) Tai
>            Priority: Blocker
>
> We need to adopt the {{release-build.sh}} script from the Bahir Spark repo, 
> in order to kick off the first Bahir Flink extensions release.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to