From b0f4af80dfd5203cf0cac24d5461555f240d3172 Mon Sep 17 00:00:00 2001 From: Yonny Hao Date: Mon, 8 Dec 2025 18:01:18 +0800 Subject: [PATCH] 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 < [--upload] [ ] +Usage: $(basename "$0") [--upload] [-rc ] [ ] Release branch in format release-v..x (e.g. release-v4.0.x) --upload (Optional) Upload artifacts to Apache dist/dev SVN + -rc (Optional) Append -RC suffix to tag when provided (Optional) SVN username for committing to Apache Dev repo (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