This is an automated email from the ASF dual-hosted git repository.

gujiaweijoe pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bifromq.git


The following commit(s) were added to refs/heads/main by this push:
     new 67eb2ff06 Improved and fixed issues in release scripts
67eb2ff06 is described below

commit 67eb2ff06aeb9be39e3fa2d4ddeb17098040eef6
Author: Yonny(Yu) Hao <[email protected]>
AuthorDate: Mon Dec 8 20:22:05 2025 +0800

    Improved and fixed issues in release scripts
    
    1. release.sh: add support for -rc option
    2. plugin-release.sh: upload missing files
---
 release/plugin-release.sh | 12 ++++++++++--
 release/release.sh        | 43 +++++++++++++++++++++++++++++++++++--------
 2 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/release/plugin-release.sh b/release/plugin-release.sh
index 6349b91ec..d6f630da9 100755
--- a/release/plugin-release.sh
+++ b/release/plugin-release.sh
@@ -87,14 +87,22 @@ mvn -N -f "${ROOT_DIR}/pom.xml" \
   ${SKIP_REMOTE_STAGING_OPT[@]+"${SKIP_REMOTE_STAGING_OPT[@]}"} \
   ${ALT_DEPLOY_OPT[@]+"${ALT_DEPLOY_OPT[@]}"} \
   ${GPG_OPT[@]+"${GPG_OPT[@]}"} \
-  deploy
+  flatten:flatten gpg:sign deploy
+
+mvn -N -f "${ROOT_DIR}/pom.xml" \
+  -DskipTests \
+  flatten:clean
 
 mvn -N -f "${ROOT_DIR}/bifromq-plugin/pom.xml" \
   -DskipTests \
   ${SKIP_REMOTE_STAGING_OPT[@]+"${SKIP_REMOTE_STAGING_OPT[@]}"} \
   ${ALT_DEPLOY_OPT[@]+"${ALT_DEPLOY_OPT[@]}"} \
   ${GPG_OPT[@]+"${GPG_OPT[@]}"} \
-  deploy
+  flatten:flatten gpg:sign deploy
+
+mvn -N -f "${ROOT_DIR}/bifromq-plugin/pom.xml" \
+  -DskipTests \
+  flatten:clean
 
 mvn -f "${ROOT_DIR}/bifromq-plugin/plugin-release/pom.xml" \
   -Papache-release \
diff --git a/release/release.sh b/release/release.sh
index bf50178c3..9fa5dc635 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -23,14 +23,15 @@
 # Print usage information
 usage() {
   cat <<EOF
-Usage: $(basename "$0") <release-branch> [--upload] [<svn-username> 
<svn-password>]
+Usage: $(basename "$0") <release-branch> [--upload] [-rc <number>] 
[<svn-username> <svn-password>]
   <release-branch>   Release branch in format release-v<major>.<minor>.x (e.g. 
release-v4.0.x)
   --upload           (Optional) Upload artifacts to Apache dist/dev SVN
+  -rc <number>       (Optional) Append -RC<number> suffix to tag when provided
   <svn-username>      (Optional) SVN username for committing to Apache Dev repo
   <svn-password>      (Optional) SVN password for committing to Apache Dev repo
 
 Example:
-  $(basename "$0") release-v1.0.x-incubating --upload my_user my_password
+  $(basename "$0") release-v4.0.x --upload -rc 1 my_user my_password
 EOF
 }
 
@@ -53,6 +54,7 @@ BRANCH="$1"
 UPLOAD=false
 USERNAME=""
 PASSWORD=""
+RC_NUMBER=""
 SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
 
 verify_gpg_access() {
@@ -70,6 +72,20 @@ while [[ $# -gt 0 ]]; do
       UPLOAD=true
       shift
       ;;
+    -rc)
+      if [[ -z "$2" ]]; then
+        echo "ERROR: -rc requires a number argument"
+        usage
+        exit 1
+      fi
+      if [[ ! "$2" =~ ^[1-9][0-9]*$ ]]; then
+        echo "ERROR: -rc number must be a positive integer"
+        usage
+        exit 1
+      fi
+      RC_NUMBER="$2"
+      shift 2
+      ;;
     *)
       if [[ -z "$USERNAME" ]]; then
         USERNAME="$1"
@@ -114,6 +130,9 @@ if [[ -z "$REVISION" ]]; then
 fi
 
 TAG="v${REVISION}"
+if [[ -n "$RC_NUMBER" ]]; then
+  TAG="${TAG}-RC${RC_NUMBER}"
+fi
 if ! git rev-parse -q --verify "refs/tags/${TAG}" >/dev/null; then
   echo "ERROR: Tag ${TAG} not found"
   exit 1
@@ -150,19 +169,27 @@ echo "Signing artifacts..."
 bash "${SCRIPT_DIR}/sign-artifacts.sh" "$WORKDIR"
 
 if [ "$UPLOAD" = true ]; then
+  UPLOAD_DIR="${REVISION}"
+  if [[ -n "$RC_NUMBER" ]]; then
+    UPLOAD_DIR="${REVISION}-RC${RC_NUMBER}"
+  fi
   SVN_TMP=$(mktemp -d)
   svn checkout "$ASF_SVN_DEV_URL" "$SVN_TMP"
-  mkdir -p "$SVN_TMP/${REVISION}"
-  cp target/output/* "$SVN_TMP/${REVISION}/"
+  mkdir -p "$SVN_TMP/${UPLOAD_DIR}"
+  for f in "$WORKDIR"/*; do
+    if [[ -f "$f" ]]; then
+      cp "$f" "$SVN_TMP/${UPLOAD_DIR}/"
+    fi
+  done
   cd "$SVN_TMP"
-  svn add --force "${REVISION}"
+  svn add --force "${UPLOAD_DIR}"
   svn status
   if [ "$USERNAME" = "" ]; then
-    svn commit -m "Add release ${REVISION}" || exit
+    svn commit -m "Add release ${UPLOAD_DIR}" || exit
   else
-    svn commit -m "Add release ${REVISION}" --username "${USERNAME}" 
--password "${PASSWORD}" || exit
+    svn commit -m "Add release ${UPLOAD_DIR}" --username "${USERNAME}" 
--password "${PASSWORD}" || exit
   fi
-  echo "Artifacts uploaded to SVN dev: ${REVISION}"
+  echo "Artifacts uploaded to SVN dev: ${UPLOAD_DIR}"
 else
   echo "Artifacts generated under target/output and copied to $WORKDIR. Use 
--upload to push to SVN."
 fi

Reply via email to