This is an automated email from the ASF dual-hosted git repository. diwu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-spark-connector.git
The following commit(s) were added to refs/heads/master by this push: new e29f963 [Improve](release) add release script (#275) e29f963 is described below commit e29f963fc1f9ee4cabb8fd00693e01b620725ca6 Author: wudi <676366...@qq.com> AuthorDate: Fri Feb 28 15:00:50 2025 +0800 [Improve](release) add release script (#275) --- tools/releasing/create_release_branch.sh | 52 +++++++++++++++++++ tools/releasing/create_source_release.sh | 85 ++++++++++++++++++++++++++++++++ tools/releasing/deploy_staging_jars.sh | 65 ++++++++++++++++++++++++ tools/releasing/update_branch_version.sh | 59 ++++++++++++++++++++++ 4 files changed, 261 insertions(+) diff --git a/tools/releasing/create_release_branch.sh b/tools/releasing/create_release_branch.sh new file mode 100644 index 0000000..2fd67b4 --- /dev/null +++ b/tools/releasing/create_release_branch.sh @@ -0,0 +1,52 @@ +#!/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. + +############################################################## +# This script is create release branch +############################################################## + +RELEASE_VERSION=${RELEASE_VERSION} + +if [ -z "${RELEASE_VERSION}" ]; then + echo "RELEASE_VERSION was not set" + exit 1 +fi + +# fail immediately +set -o errexit +set -o nounset + +CURR_DIR=`pwd` +BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +PROJECT_ROOT="${BASE_DIR}/../../" + +# Sanity check to ensure that resolved paths are valid; a LICENSE file should aways exist in project root +if [ ! -f ${PROJECT_ROOT}/LICENSE.txt ]; then + echo "Project root path ${PROJECT_ROOT} is not valid; script may be in the wrong directory." + exit 1 +fi + +TARGET_BRANCH=release-${RELEASE_VERSION} + +cd ${PROJECT_ROOT} +git checkout -b ${TARGET_BRANCH} + +RELEASE_COMMIT_HASH=`git rev-parse HEAD` +echo "Created a new release branch ${TARGET_BRANCH} with commit hash ${RELEASE_COMMIT_HASH}." + +cd ${CURR_DIR} \ No newline at end of file diff --git a/tools/releasing/create_source_release.sh b/tools/releasing/create_source_release.sh new file mode 100644 index 0000000..5df6329 --- /dev/null +++ b/tools/releasing/create_source_release.sh @@ -0,0 +1,85 @@ +#!/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. + +############################################################## +# This script is create release to svn +############################################################## + +RELEASE_VERSION=${RELEASE_VERSION} + +if [ -z "${RELEASE_VERSION}" ]; then + echo "RELEASE_VERSION is unset" + exit 1 +fi + +# fail immediately +set -o errexit +set -o nounset + +CURR_DIR=`pwd` +BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +PROJECT_ROOT="$( cd "$( dirname "${BASE_DIR}/../../../" )" >/dev/null && pwd )" + +# Sanity check to ensure that resolved paths are valid; a LICENSE file should aways exist in project root +if [ ! -f ${PROJECT_ROOT}/LICENSE.txt ]; then + echo "Project root path ${PROJECT_ROOT} is not valid; script may be in the wrong directory." + exit 1 +fi + +if [ "$(uname)" == "Darwin" ]; then + SHASUM="shasum -a 512" +else + SHASUM="sha512sum" +fi + +########################### + +RELEASE_DIR=${PROJECT_ROOT}/release +CLONE_DIR=${RELEASE_DIR}/doris-spark-connector-tmp-clone + +rm -rf ${RELEASE_DIR} +mkdir ${RELEASE_DIR} + +# delete the temporary release directory on error +trap 'rm -rf ${RELEASE_DIR}' ERR + +echo "Creating source package" + +# create a temporary git clone to ensure that we have a pristine source release +git clone ${PROJECT_ROOT} ${CLONE_DIR} + +cd ${CLONE_DIR} +rsync -a \ + --exclude ".git" --exclude ".gitignore" \ + --exclude ".asf.yaml" \ + --exclude "target" \ + --exclude ".idea" --exclude "*.iml" \ + --exclude ".travis.yml" \ + . doris-spark-connector-${RELEASE_VERSION} + +tar czf ${RELEASE_DIR}/apache-doris-spark-connector-${RELEASE_VERSION}-src.tgz doris-spark-connector-${RELEASE_VERSION} +gpg --armor --detach-sign ${RELEASE_DIR}/apache-doris-spark-connector-${RELEASE_VERSION}-src.tgz + +cd ${RELEASE_DIR} +${SHASUM} apache-doris-spark-connector-${RELEASE_VERSION}-src.tgz > apache-doris-spark-connector-${RELEASE_VERSION}-src.tgz.sha512 + +rm -rf ${CLONE_DIR} + +echo "Done. Source release package and signatures created under ${RELEASE_DIR}/." + +cd ${CURR_DIR} \ No newline at end of file diff --git a/tools/releasing/deploy_staging_jars.sh b/tools/releasing/deploy_staging_jars.sh new file mode 100644 index 0000000..7d4b4b9 --- /dev/null +++ b/tools/releasing/deploy_staging_jars.sh @@ -0,0 +1,65 @@ +#!/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. + +############################################################## +# This script is deploy stage jars to repository.apache.org +############################################################## + +MVN=${MVN:-mvn} +CUSTOM_OPTIONS=${CUSTOM_OPTIONS:-} + +# fail immediately +set -o errexit +set -o nounset + +CURR_DIR=`pwd` +BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +PROJECT_ROOT="${BASE_DIR}/../../" + +# Sanity check to ensure that resolved paths are valid; a LICENSE file should always exist in project root +if [ ! -f ${PROJECT_ROOT}/LICENSE.txt ]; then + echo "Project root path ${PROJECT_ROOT} is not valid; script may be in the wrong directory." + exit 1 +fi + +########################### + +cd ${PROJECT_ROOT}/spark-doris-connector + +echo "Deploying to repository.apache.org" + +echo "Deploying spark2.4..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-2.4_2.11 -pl spark-doris-connector-spark-2 -am + +echo "Deploying spark3.1..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-3.1 -pl spark-doris-connector-spark-3.1 -am + +echo "Deploying spark3.2..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-3.2 -pl spark-doris-connector-spark-3.2 -am + +echo "Deploying spark3.3..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-3.3 -pl spark-doris-connector-spark-3.3 -am + +echo "Deploying spark3.4..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-3.4 -pl spark-doris-connector-spark-3.4 -am + +echo "Deploying spark3.5..." +${MVN} clean deploy -Papache-release -DskipTests -DretryFailedDeploymentCount=10 -Pspark-3.5 -pl spark-doris-connector-spark-3.5 -am + +echo "Deploy jar finished." +cd ${CURR_DIR} \ No newline at end of file diff --git a/tools/releasing/update_branch_version.sh b/tools/releasing/update_branch_version.sh new file mode 100644 index 0000000..955eaa6 --- /dev/null +++ b/tools/releasing/update_branch_version.sh @@ -0,0 +1,59 @@ +#!/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. + +############################################################## +# This script is update branch version in pom.xml +############################################################## + +RELEASE_VERSION=${RELEASE_VERSION} + +if [ -z "${RELEASE_VERSION}" ]; then + echo "RELEASE_VERSION was not set." + exit 1 +fi + +# fail immediately +set -o errexit +set -o nounset + +CURR_DIR=`pwd` +BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +PROJECT_ROOT="${BASE_DIR}/../../" + +# Sanity check to ensure that resolved paths are valid; a LICENSE file should aways exist in project root +if [ ! -f ${PROJECT_ROOT}/LICENSE.txt ]; then + echo "Project root path ${PROJECT_ROOT} is not valid; script may be in the wrong directory." + exit 1 +fi + +cd ${PROJECT_ROOT}/spark-load +mvn versions:set -DgenerateBackupPoms=false -DnewVersion=${RELEASE_VERSION} +mvn versions:set-property -DgenerateBackupPoms=false -Dproperty=revision -DnewVersion=${RELEASE_VERSION} + +cd ${PROJECT_ROOT}/spark-doris-connector +mvn versions:set -DgenerateBackupPoms=false -DnewVersion=${RELEASE_VERSION} +mvn versions:set-property -DgenerateBackupPoms=false -Dproperty=revision -DnewVersion=${RELEASE_VERSION} + +git commit -am "[release] Update version to ${RELEASE_VERSION}" + +RELEASE_VERSION_COMMIT_HASH=`git rev-parse HEAD` + +echo "Done. Created a new commit for the new version ${RELEASE_VERSION}, with hash ${RELEASE_VERSION_COMMIT_HASH}" +echo "If this is a new version to be released (or a candidate to be voted on), don't forget to create a signed release tag on GitHub and push the changes." + +cd ${CURR_DIR} \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org