You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by rm...@apache.org on 2017/01/24 08:12:16 UTC

flink git commit: [FLINK-5395] [Build System] support locally build distribution by script create_release_files.sh

Repository: flink
Updated Branches:
  refs/heads/master 00d1ad86a -> 6b55e2ca3


[FLINK-5395] [Build System] support locally build distribution by script create_release_files.sh

This closes #3049


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/6b55e2ca
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/6b55e2ca
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/6b55e2ca

Branch: refs/heads/master
Commit: 6b55e2ca30c5ecbf9998e44b2638a7f2d94a5963
Parents: 00d1ad8
Author: shijinkui <sh...@163.com>
Authored: Wed Jan 11 17:42:16 2017 +0800
Committer: Robert Metzger <rm...@apache.org>
Committed: Tue Jan 24 09:11:56 2017 +0100

----------------------------------------------------------------------
 .gitignore                    |   2 +
 tools/create_release_files.sh | 156 +++++++++++++++++++++++++++++--------
 2 files changed, 124 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/6b55e2ca/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 9012d0a..3c9e4e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,5 @@ out/
 /docs/.jekyll-metadata
 *.ipr
 *.iws
+tools/flink
+tools/flink-*

http://git-wip-us.apache.org/repos/asf/flink/blob/6b55e2ca/tools/create_release_files.sh
----------------------------------------------------------------------
diff --git a/tools/create_release_files.sh b/tools/create_release_files.sh
index fdf50a5..ed01d97 100755
--- a/tools/create_release_files.sh
+++ b/tools/create_release_files.sh
@@ -66,16 +66,20 @@ fi
 GPG_PASSPHRASE=${GPG_PASSPHRASE:-XXX}
 GPG_KEY=${GPG_KEY:-XXX}
 GIT_AUTHOR=${GIT_AUTHOR:-"Your name <yo...@apache.org>"}
-OLD_VERSION=${OLD_VERSION:-1.1-SNAPSHOT}
-RELEASE_VERSION=${NEW_VERSION}
-RELEASE_CANDIDATE=${RELEASE_CANDIDATE:-rc1}
+OLD_VERSION=${OLD_VERSION:-1.2-SNAPSHOT}
+RELEASE_VERSION=${NEW_VERSION:-1.3-SNAPSHOT}
+RELEASE_CANDIDATE=${RELEASE_CANDIDATE:-none}
 RELEASE_BRANCH=${RELEASE_BRANCH:-master}
 USER_NAME=${USER_NAME:-yourapacheidhere}
 MVN=${MVN:-mvn}
 GPG=${GPG:-gpg}
 sonatype_user=${sonatype_user:-yourapacheidhere}
 sonatype_pw=${sonatype_pw:-XXX}
-
+# whether only build the dist local and don't release to apache
+IS_LOCAL_DIST=${IS_LOCAL_DIST:-false}
+GIT_REPO=${GIT_REPO:-git-wip-us.apache.org/repos/asf/flink.git}
+SCALA_VERSION=none
+HADOOP_VERSION=none
 
 if [ "$(uname)" == "Darwin" ]; then
     SHASUM="shasum -a 512"
@@ -85,18 +89,81 @@ else
     MD5SUM="md5sum"
 fi
 
+usage() {
+  set +x
+  echo "./create_release_files.sh --scala-version 2.11 --hadoop-version 2.7.2"
+  echo ""
+  echo "usage:"
+  echo "[--scala-version <version>] [--hadoop-version <version>]"
+  echo ""
+  echo "example 1: build apache release"
+  echo "  sonatype_user=APACHEID sonatype_pw=APACHEIDPASSWORD \ "
+  echo "  NEW_VERSION=1.2.0 RELEASE_CANDIDATE="rc1" RELEASE_BRANCH=release-1.2.0 OLD_VERSION=1.1-SNAPSHOT \ "
+  echo "  USER_NAME=APACHEID GPG_PASSPHRASE=XXX GPG_KEY=KEYID \ "
+  echo "  GIT_AUTHOR=\"`git config --get user.name` <`git config --get user.email`>\" \ "
+  echo "  GIT_REPO=github.com/apache/flink.git \ "
+  echo "  ./create_release_files.sh --scala-version 2.11 --hadoop-version 2.7.2"
+  echo ""
+  echo "example 2: build local release"
+  echo "  NEW_VERSION=1.2.0 RELEASE_BRANCH=master OLD_VERSION=1.2-SNAPSHOT \ "
+  echo "  GPG_PASSPHRASE=XXX GPG_KEY=XXX IS_LOCAL_DIST=true \ "
+  echo "  ./create_release_files.sh --scala-version 2.11 --hadoop-version 2.7.2"
+
+  exit 1
+}
+
+# Parse arguments
+while (( "$#" )); do
+  case $1 in
+    --scala-version)
+      SCALA_VERSION="$2"
+      shift
+      ;;
+    --hadoop-version)
+      HADOOP_VERSION="$2"
+      shift
+      ;;
+    --help)
+      usage
+      ;;
+    *)
+      break
+      ;;
+  esac
+  shift
+done
+
+###########################
 
 prepare() {
   # prepare
-  git clone http://git-wip-us.apache.org/repos/asf/flink.git flink
+  target_branch=release-$RELEASE_VERSION
+  if [ "$RELEASE_CANDIDATE" != "none" ]; then
+    target_branch=$target_branch-$RELEASE_CANDIDATE
+  fi
+
+  if [ ! -d ./flink ]; then
+    git clone http://$GIT_REPO flink
+  else
+    # if flink git repo exist, delete target branch, delete builded distribution
+    rm -rf flink-*.tgz
+    cd flink
+    # try-catch
+    {
+      git pull --all
+      git checkout master
+      git branch -D $target_branch -f
+    } || {
+      echo "branch $target_branch not found"
+    }
+    cd ..
+  fi
+
   cd flink
-  git checkout -b "release-$RELEASE_VERSION-$RELEASE_CANDIDATE" origin/$RELEASE_BRANCH
-  rm -f .gitignore
-  rm -f .gitattributes
-  rm -f .travis.yml
-  rm -f deploysettings.xml
-  rm -f CHANGELOG
-  rm -rf .github
+
+  git checkout -b $target_branch origin/$RELEASE_BRANCH
+  rm -rf .gitignore .gitattributes .travis.yml deploysettings.xml CHANGELOG .github
+
   cd ..
 }
 
@@ -117,10 +184,13 @@ make_source_release() {
   perl -pi -e "s#^version_short: .*#version_short: ${NEW_VERSION}#" _config.yml
   cd ..
 
-  git commit --author="$GIT_AUTHOR" -am "Commit for release $RELEASE_VERSION"
-  git remote add asf_push https://$USER_NAME@git-wip-us.apache.org/repos/asf/flink.git
-  RELEASE_HASH=`git rev-parse HEAD`
-  echo "Echo created release hash $RELEASE_HASH"
+  # local dist have no need to commit to remote
+  if [ ! IS_LOCAL_DIST ]; then
+    git commit --author="$GIT_AUTHOR" -am "Commit for release $RELEASE_VERSION"
+    git remote add asf_push https://$USER_NAME@$GIT_REPO
+    RELEASE_HASH=`git rev-parse HEAD`
+    echo "Echo created release hash $RELEASE_HASH"
+  fi
 
   cd ..
 
@@ -134,7 +204,7 @@ make_source_release() {
   rm -rf flink-$RELEASE_VERSION
 }
 
-
+# build maven package, create Flink distribution, generate signature
 make_binary_release() {
   NAME=$1
   FLAGS=$2
@@ -151,8 +221,8 @@ make_binary_release() {
   # enable release profile here (to check for the maven version)
   $MVN clean package $FLAGS -DskipTests -Prelease -Dgpg.skip
 
-  cd flink-dist/target/flink-$RELEASE_VERSION-bin/
-  tar czf "${dir_name}.tgz" flink-$RELEASE_VERSION
+  cd flink-dist/target/flink-*-bin/
+  tar czf "${dir_name}.tgz" flink-*
 
   cp flink-*.tgz ../../../../
   cd ../../../../
@@ -164,7 +234,6 @@ make_binary_release() {
     --detach-sig "${dir_name}.tgz"
   $MD5SUM "${dir_name}.tgz" > "${dir_name}.tgz.md5"
   $SHASUM "${dir_name}.tgz" > "${dir_name}.tgz.sha"
-
 }
 
 deploy_to_maven() {
@@ -188,7 +257,11 @@ deploy_to_maven() {
 copy_data() {
   # Copy data
   echo "Copying release tarballs"
-  folder=flink-$RELEASE_VERSION-$RELEASE_CANDIDATE
+  folder=flink-$RELEASE_VERSION
+  # candidate is not none, append it
+  if [ "$RELEASE_CANDIDATE" != "none" ]; then
+    folder=$folder-$RELEASE_CANDIDATE
+  fi
   sftp $USER_NAME@home.apache.org <<EOF
 mkdir public_html/$folder
 put flink-*.tgz* public_html/$folder
@@ -201,19 +274,34 @@ prepare
 
 make_source_release
 
-make_binary_release "hadoop2" "" 2.10
-make_binary_release "hadoop24" "-Dhadoop.version=2.4.1" 2.10
-make_binary_release "hadoop26" "-Dhadoop.version=2.6.3" 2.10
-make_binary_release "hadoop27" "-Dhadoop.version=2.7.2" 2.10
-
-make_binary_release "hadoop2" "" 2.11
-make_binary_release "hadoop24" "-Dhadoop.version=2.4.1" 2.11
-make_binary_release "hadoop26" "-Dhadoop.version=2.6.3" 2.11
-make_binary_release "hadoop27" "-Dhadoop.version=2.7.2" 2.11
-
-copy_data
-
-deploy_to_maven
+# build dist by input parameter of "--scala-vervion xxx --hadoop-version xxx"
+if [ "$SCALA_VERSION" == "none" ] && [ "$HADOOP_VERSION" == "none" ]; then
+  make_binary_release "hadoop2" "" 2.10
+  make_binary_release "hadoop24" "-Dhadoop.version=2.4.1" "2.10"
+  make_binary_release "hadoop26" "-Dhadoop.version=2.6.3" "2.10"
+  make_binary_release "hadoop27" "-Dhadoop.version=2.7.2" "2.10"
+
+  make_binary_release "hadoop2" "" 2.11
+  make_binary_release "hadoop24" "-Dhadoop.version=2.4.1" "2.11"
+  make_binary_release "hadoop26" "-Dhadoop.version=2.6.3" "2.11"
+  make_binary_release "hadoop27" "-Dhadoop.version=2.7.2" "2.11"
+elif [ "$SCALA_VERSION" == none ] && [ "$HADOOP_VERSION" != "none" ]
+then
+  make_binary_release "hadoop2" "-Dhadoop.version=$HADOOP_VERSION" "2.10"
+  make_binary_release "hadoop2" "-Dhadoop.version=$HADOOP_VERSION" "2.11"
+elif [ "$SCALA_VERSION" != none ] && [ "$HADOOP_VERSION" == "none" ]
+then
+  make_binary_release "hadoop2" "" $SCALA_VERSION
+  make_binary_release "hadoop24" "-Dhadoop.version=2.4.1" "$SCALA_VERSION"
+  make_binary_release "hadoop26" "-Dhadoop.version=2.6.3" "$SCALA_VERSION"
+  make_binary_release "hadoop27" "-Dhadoop.version=2.7.2" "$SCALA_VERSION"
+else
+  make_binary_release "hadoop2x" "-Dhadoop.version=$HADOOP_VERSION" "$SCALA_VERSION"
+fi
 
+if [ ! IS_LOCAL_DIST ] ; then
+    copy_data
+    deploy_to_maven
+fi
 
 echo "Done. Don't forget to commit the release version"