diff --git a/qqq-dev-tools/CURRENT-SNAPSHOT-VERSION b/qqq-dev-tools/CURRENT-SNAPSHOT-VERSION index a8f40f2b..d9df1bbc 100644 --- a/qqq-dev-tools/CURRENT-SNAPSHOT-VERSION +++ b/qqq-dev-tools/CURRENT-SNAPSHOT-VERSION @@ -1 +1 @@ -0.11.0 +0.11.0 diff --git a/qqq-dev-tools/bin/end-of-sprint-release.sh b/qqq-dev-tools/bin/end-of-sprint-release.sh index 616a4259..a719800a 100755 --- a/qqq-dev-tools/bin/end-of-sprint-release.sh +++ b/qqq-dev-tools/bin/end-of-sprint-release.sh @@ -2,7 +2,6 @@ ############################################################################ ## Script to run the release process on qqq at the end of a sprint. -## It's a good idea to run it from a fresh clone, but that's not strictly needed. ## Uses gum for CLI UI. ############################################################################ @@ -24,9 +23,22 @@ function gumConfirmProceed fi } +QQQ_RELEASE_DIR=/tmp/qqq-release +QQQ_DEV_TOOLS_DIR=${}QQQ_RELEASE_DIR}/qqq/qqq-dev-tools + +mkdir -p $QQQ_RELEASE_DIR/qqq +cd $QQQ_RELEASE_DIR/qqq || exit gumBanner "Making sure you have a clean git checkout" -git status -gumConfirmProceed "Can we Proceed, or do you need to clean up your checkout (git stash -u)?" "Proceed" "I need to clean up my checkout" +git status 2>&1 > /dev/null 2>&1 +if [ "$?" != "0" ]; then + gumConfirmProceed "No git checkout found, create a clean checkout at [$QQQ_RELEASE_DIR]?" "Proceed" "No, please quit" + cd $QQQ_RELEASE_DIR || exit + git clone git@github.com:Kingsrook/qqq.git + git clone git@github.com:Kingsrook/qqq-frontend-material-dashboard.git + git clone git@github.com:Kingsrook/qqq-frontend-core.git +else + gumConfirmProceed "Existing git checkouts found at [$QQQ_RELEASE_DIR], continue?" "Yes, use those" "I need to go delete it and start over" +fi gumBanner "Checking for open PR's..." gh pr list @@ -38,17 +50,16 @@ git checkout main && git pull && git checkout dev && git pull if [ ! -e "qqq-sample-project/.env" ]; then dir=$(realpath .) gumBanner "Installing .env file -- for qqq" "Tell it your qqq is at:" "$dir" - setup-environments.sh --qqq --quiet + setup-environments.sh --qqq --quiet --is-for-release fi ################################### ## go back to root qqq directory ## ################################### -cd ~/git/kingsrook/qqq/ +cd $QQQ_RELEASE_DIR/qqq || exit MVN_VERIFY_LOG=/tmp/mvn-verify.log gumBanner "Doing clean build (logging to $MVN_VERIFY_LOG)" -cp ~/git/kingsrook/qqq/qqq-sample-project/.env qqq-sample-project mvn clean verify > $MVN_VERIFY_LOG 2>&1 tail -30 $MVN_VERIFY_LOG gumConfirmProceed "Can we Proceed, or are there build errors to fix?" "Proceed" "There are build errors to fix" @@ -69,7 +80,7 @@ mvn gitflow:release-finish gumBanner "Updating qqq-dev-tools/CURRENT-SNAPSHOT-VERSION" CURRENT_SNAPSHOT_VERSION=$(grep '' pom.xml | sed 's/<.\?revision>//g;s/-SNAPSHOT//;s/ //g;') echo $CURRENT_SNAPSHOT_VERSION > $QQQ_DEV_TOOLS_DIR/CURRENT-SNAPSHOT-VERSION -cd $QQQ_DEV_TOOLS_DIR +cd $QQQ_DEV_TOOLS_DIR || exit git commit -m "Updating to $CURRENT_SNAPSHOT_VERSION" CURRENT-SNAPSHOT-VERSION git push diff --git a/qqq-dev-tools/bin/setup-environments.sh b/qqq-dev-tools/bin/setup-environments.sh index b322e442..17a3e0a7 100755 --- a/qqq-dev-tools/bin/setup-environments.sh +++ b/qqq-dev-tools/bin/setup-environments.sh @@ -9,7 +9,7 @@ function usage() { - echo "Usage: $0 [--nf-one|--qqq] [-q|--quiet]" + echo "Usage: $0 [--nf-one|--qqq] [-q|--quiet] [-r|--is-for-release]" echo "By default, all environments are set up. Give an option to just do nf-one or qqq." exit 1; } @@ -17,6 +17,7 @@ function usage() DO_NF_ONE=0 DO_QQQ=0 QUIET=0 +IS_FOR_RELEASE=0 if [ -z "$1" ]; then DO_NF_ONE=1 @@ -29,6 +30,8 @@ else DO_QQQ=1 elif [ "$arg" == "-q" -o "$arg" == "--quiet" ]; then QUIET=1 + elif [ "$arg" == "-r" -o "$arg" == "--is-for-release" ]; then + IS_FOR_RELEASE=1 else usage fi @@ -144,10 +147,15 @@ function setupRepoEnvironment repoName=$1 isNutrifreshOneRepo=$2 + repoSearchRoot=${HOME}/git + if [ "$IS_FOR_RELEASE" == "1" ]; then + repoSearchRoot="/tmp/qqq-release" + fi + ############################################################# ## try to automatically find the proper git repo directory ## ############################################################# - repoLocation=$(find ${HOME}/git -maxdepth 5 -type d -path "*${repoName}/.git" | sed 's/\/\.git//') + repoLocation=$(find ${repoSearchRoot} -maxdepth 5 -type d -path "*${repoName}/.git" | sed 's/\/\.git//') if [ "$repoLocation" != "" ]; then