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"