From 77a436b3394ab62e22cf08094a4641b5df9a3122 Mon Sep 17 00:00:00 2001 From: trydofor Date: Mon, 4 Mar 2024 12:34:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=9A=80=20alt=20repo=20is=20optional?= =?UTF-8?q?=20#217?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release-notes.yml | 6 +++--- .github/workflows/release.yml | 2 +- observe/meepo | 2 +- observe/mirana | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 24ea300c..746fc8d7 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -58,15 +58,15 @@ jobs: exclude: labels: [ "duplicate", "invalid", "investigate", "pending", "question", "wontfix" ] sections: - - title: "⭐ New Feature" + - title: "⭐ New Features" labels: [ "feature" ] - title: "🐞 Bug Fixes" labels: [ "bug" ] - - title: "💎 Enhancement" + - title: "💎 Enhancements" labels: [ "better", "devops", "quality" ] - title: "📝 Documentation" labels: [ "docs" ] - - title: "📦️ Dependency" + - title: "📦️ Dependencies" labels: [ "deps" ] EOF diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1bc3860d..c0f3b34e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -114,7 +114,7 @@ jobs: echo "- MVN_DEPLOY_OSSRH=$_drh" >> "$GITHUB_STEP_SUMMARY" echo "MVN_DEPLOY_OSSRH=$_drh" >> "$GITHUB_OUTPUT" - _drp=${{ ( inputs.deployAltrh || github.event_name == 'release' ) && secrets.MVN_ALT_USER != '' }} + _drp=${{ secrets.MVN_ALT_USER != '' && ( inputs.deployAltrh || github.event_name == 'push' ) }} echo "- MVN_DEPLOY_ALTRH=$_drp" >> "$GITHUB_STEP_SUMMARY" echo "MVN_DEPLOY_ALTRH=$_drp" >> "$GITHUB_OUTPUT" diff --git a/observe/meepo b/observe/meepo index 396612be..7d455f25 160000 --- a/observe/meepo +++ b/observe/meepo @@ -1 +1 @@ -Subproject commit 396612be6c960fa383203d6a6f5c9e0fef287990 +Subproject commit 7d455f2563fc2102b7d0f626761bcdc9dc203543 diff --git a/observe/mirana b/observe/mirana index d17c370b..6eda0885 160000 --- a/observe/mirana +++ b/observe/mirana @@ -1 +1 @@ -Subproject commit d17c370b442f4a1e8897c01c6260fee105470bea +Subproject commit 6eda0885aa1cc62b6a12ee2771a5ab51327f9424 From 681bc9ffaf5a680779009296852cb17410188958 Mon Sep 17 00:00:00 2001 From: trydofor Date: Tue, 5 Mar 2024 16:17:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20refine?= =?UTF-8?q?=20shell=20script,=20indent,=20heredocs=20#218?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- observe/docs | 2 +- observe/scripts/wings-docker.sh | 146 ++++++++++++++-------------- observe/scripts/wings-git-stat.sh | 2 +- observe/scripts/wings-mysql-dump.sh | 74 +++++++------- observe/scripts/wings-mysql-user.sh | 56 +++++------ observe/scripts/wings-release.sh | 31 ++++-- observe/scripts/wings-starter.sh | 4 +- 7 files changed, 162 insertions(+), 153 deletions(-) diff --git a/observe/docs b/observe/docs index 5d1e3764..5f68973b 160000 --- a/observe/docs +++ b/observe/docs @@ -1 +1 @@ -Subproject commit 5d1e37643747355f7e7c87e8c0daf88979c5f90a +Subproject commit 5f68973bb41b525e2e25179966a99d84a2431532 diff --git a/observe/scripts/wings-docker.sh b/observe/scripts/wings-docker.sh index 7064c362..c10ac305 100755 --- a/observe/scripts/wings-docker.sh +++ b/observe/scripts/wings-docker.sh @@ -35,29 +35,25 @@ $IMAGE_ENV_JAVA_ADD \ -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 \ -Xlog:gc*=info:file=$IMAGE_APP_LOGS/application.gc:time,tid,tags:filecount=5,filesize=100m " -IMAGE_ENV_BOOT_ARGS="\ ---spring.config.location=optional:file:$IMAGE_APP_CONF \ ---logging.file.name=$IMAGE_APP_LOGS/application.log" - ####### function show_help() { - echo -e '\033[32m clean \033[m clean docker- build dir of boot-jar' - echo -e '\033[32m print \033[m print docker- Dockerfile of boot-jar' - echo -e '\033[32m unzip \033[m unzip docker- files of boot-jar' - echo -e '\033[32m build \033[m build docker- image of boot-jar' - echo -e '\033[32m help \033[m show this' - echo -e '\033[32m \033[m only dependencies + spring-boot-loader' - echo -e '\033[32m \033[m + napshot-dependencies + application' - echo -e '\033[32m \033[m + ' + echo -e '\033[32m clean \033[m clean docker- build dir of boot-jar' + echo -e '\033[32m print \033[m print docker- Dockerfile of boot-jar' + echo -e '\033[32m unzip \033[m unzip docker- files of boot-jar' + echo -e '\033[32m build \033[m build docker- image of boot-jar' + echo -e '\033[32m help \033[m show this' + echo -e '\033[32m \033[m only dependencies + spring-boot-loader' + echo -e '\033[32m \033[m + napshot-dependencies + application' + echo -e '\033[32m \033[m + ' } function docker_file() { - _cmd=(cat) - if [ "$BUILD_MOD" == "dep" ]; then - _cmd=(grep -v -E 'COPY snapshot-dependencies/|COPY application/') - elif [ "$BUILD_MOD" == "app" ]; then - _cmd=(grep -v -E 'COPY dependencies/|COPY spring-boot-loader/') - fi + _cmd=(cat) + if [ "$BUILD_MOD" == "dep" ]; then + _cmd=(grep -v -E 'COPY snapshot-dependencies/|COPY application/') + elif [ "$BUILD_MOD" == "app" ]; then + _cmd=(grep -v -E 'COPY dependencies/|COPY spring-boot-loader/') + fi "${_cmd[@]}" << EOF FROM $IMAGE_TAG_FROM @@ -101,12 +97,12 @@ if [[ "$BUILD_ARG" == "help" ]]; then fi BUILD_MOD="$2" -if [ "$BUILD_MOD" == "dep" ] || [ "$BUILD_MOD" == "app" ] || [ "$BUILD_MOD" == "all" ]; then - echo -e "\033[32m build mod=$BUILD_MOD \033[0m" +if [[ "$BUILD_MOD" == "dep" || "$BUILD_MOD" == "app" || "$BUILD_MOD" == "all" ]]; then + echo -e "\033[32m build mod=$BUILD_MOD \033[0m" else - echo -e "\033[31mERROR: bad arg2, $BUILD_MOD \033[0m" - show_help - exit + echo -e "\033[31mERROR: bad arg2, $BUILD_MOD \033[0m" + show_help + exit fi ## build @@ -114,60 +110,60 @@ BUILD_BOOT_JAR="$3" BUILD_WORK_DIR= IMAGE_TAG_BOOT= IMAGE_TAG_FROM="eclipse-temurin:21-jre" -if [ -f "$BUILD_BOOT_JAR" ]; then - _this=$(realpath "$BUILD_BOOT_JAR") - _temp=$(dirname "$_this") - BUILD_WORK_DIR="$_temp/docker-$BUILD_MOD" - IMAGE_TAG_BOOT=$(basename "$_this" | sed -E 's/\.[^.]*$//' | sed -E 's/-([0-9]+\.)/:\1/') # winx-front:3.2.110-SNAPSHOT - if [ "$BUILD_MOD" == "dep" ]; then - IMAGE_TAG_BOOT="${IMAGE_TAG_BOOT}-DEP" - elif [ "$BUILD_MOD" == "app" ]; then - IMAGE_TAG_FROM="${IMAGE_TAG_BOOT}-DEP" - fi - echo -e "\033[32m work dir=$BUILD_WORK_DIR \033[0m" - echo -e "\033[32m boot tag=$IMAGE_TAG_BOOT \033[0m" - echo -e "\033[32m from tag=$IMAGE_TAG_FROM \033[0m" +if [[ -f "$BUILD_BOOT_JAR" ]]; then + _this=$(realpath "$BUILD_BOOT_JAR") + _temp=$(dirname "$_this") + BUILD_WORK_DIR="$_temp/docker-$BUILD_MOD" + IMAGE_TAG_BOOT=$(basename "$_this" | sed -E 's/\.[^.]*$//' | sed -E 's/-([0-9]+\.)/:\1/') # winx-front:3.2.110-SNAPSHOT + if [[ "$BUILD_MOD" == "dep" ]]; then + IMAGE_TAG_BOOT="${IMAGE_TAG_BOOT}-DEP" + elif [[ "$BUILD_MOD" == "app" ]]; then + IMAGE_TAG_FROM="${IMAGE_TAG_BOOT}-DEP" + fi + echo -e "\033[32m work dir=$BUILD_WORK_DIR \033[0m" + echo -e "\033[32m boot tag=$IMAGE_TAG_BOOT \033[0m" + echo -e "\033[32m from tag=$IMAGE_TAG_FROM \033[0m" else - echo -e "\033[31mERROR: no boot-jar $BUILD_BOOT_JAR \033[0m" - echo -e "\033[32m mvn clean package \033[0m to build" - show_help - exit + echo -e "\033[31mERROR: no boot-jar $BUILD_BOOT_JAR \033[0m" + echo -e "\033[32m mvn clean package \033[0m to build" + show_help + exit fi case "$BUILD_ARG" in - print) - echo -e "\033[37;42;1mINFO: ==== Dockerfile ==== \033[0m" - docker_file - echo -e "\033[37;42;1mINFO: ==== docker run ==== \033[0m" - echo "WINGS_DOCKER_NET=wings-app" - echo "WINGS_DOCKER_OPTS=(--network \$WINGS_DOCKER_NET -e TZ=Asia/Shanghai -v ./data:/app/data -v ./conf:/app/conf -v ./logs:/app/logs -p 8091:8080)" - echo "docker network create --driver bridge \$WINGS_DOCKER_NET" - echo "docker run -it --rm \${WINGS_DOCKER_OPTS[@]} $IMAGE_TAG_BOOT" - echo "docker run -it --rm \${WINGS_DOCKER_OPTS[@]} --entrypoint /bin/bash $IMAGE_TAG_BOOT" - ;; - clean) - if [ -d "$BUILD_WORK_DIR" ];then - echo -e "\033[32m clean $BUILD_WORK_DIR" - rm -rf "$BUILD_WORK_DIR" - else - echo -e "\033[33mINFO: not found $BUILD_WORK_DIR \033[0m" - fi - ;; - unzip) - [ -d "$BUILD_WORK_DIR" ] && rm -rf "$BUILD_WORK_DIR" - mkdir -p "$BUILD_WORK_DIR" - echo -e "\033[32m unzip layered jar \033[0m" - java -Djarmode=layertools -jar "$BUILD_BOOT_JAR" extract --destination "$BUILD_WORK_DIR" - echo -e "\033[32m delete spring-boot-jarmode-layertools.jar \033[0m" - find "$BUILD_WORK_DIR/dependencies" -name 'spring-boot-jarmode-layertools-*.jar' -delete - ;; - build) - cd "$BUILD_WORK_DIR" || exit - docker_file > Dockerfile - echo -e "\033[32m build Dockerfile \033[0m" - docker build -t "$IMAGE_TAG_BOOT" . - ;; - *) - show_help - ;; + print) + echo -e "\033[37;42;1mINFO: ==== Dockerfile ==== \033[0m" + docker_file + echo -e "\033[37;42;1mINFO: ==== docker run ==== \033[0m" + echo "WINGS_DOCKER_NET=wings-app" + echo "WINGS_DOCKER_OPTS=(--network \$WINGS_DOCKER_NET -e TZ=Asia/Shanghai -v ./data:/app/data -v ./conf:/app/conf -v ./logs:/app/logs -p 8091:8080)" + echo "docker network create --driver bridge \$WINGS_DOCKER_NET" + echo "docker run -it --rm \${WINGS_DOCKER_OPTS[@]} $IMAGE_TAG_BOOT" + echo "docker run -it --rm \${WINGS_DOCKER_OPTS[@]} --entrypoint /bin/bash $IMAGE_TAG_BOOT" + ;; + clean) + if [[ -d "$BUILD_WORK_DIR" ]];then + echo -e "\033[32m clean $BUILD_WORK_DIR" + rm -rf "$BUILD_WORK_DIR" + else + echo -e "\033[33mINFO: not found $BUILD_WORK_DIR \033[0m" + fi + ;; + unzip) + [[ -d "$BUILD_WORK_DIR" ]] && rm -rf "$BUILD_WORK_DIR" + mkdir -p "$BUILD_WORK_DIR" + echo -e "\033[32m unzip layered jar \033[0m" + java -Djarmode=layertools -jar "$BUILD_BOOT_JAR" extract --destination "$BUILD_WORK_DIR" + echo -e "\033[32m delete spring-boot-jarmode-layertools.jar \033[0m" + find "$BUILD_WORK_DIR/dependencies" -name 'spring-boot-jarmode-layertools-*.jar' -delete + ;; + build) + cd "$BUILD_WORK_DIR" || exit + docker_file > Dockerfile + echo -e "\033[32m build Dockerfile \033[0m" + docker build -t "$IMAGE_TAG_BOOT" . + ;; + *) + show_help + ;; esac diff --git a/observe/scripts/wings-git-stat.sh b/observe/scripts/wings-git-stat.sh index 96b9baf7..d020cd66 100755 --- a/observe/scripts/wings-git-stat.sh +++ b/observe/scripts/wings-git-stat.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e THIS_VERSION=2021-12-21 echo -e "\033[37;42;1mScript-Version $THIS_VERSION \033[0m" diff --git a/observe/scripts/wings-mysql-dump.sh b/observe/scripts/wings-mysql-dump.sh index 0798bbf0..992769e4 100755 --- a/observe/scripts/wings-mysql-dump.sh +++ b/observe/scripts/wings-mysql-dump.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e THIS_VERSION=2023-04-14 cat << EOF @@ -26,10 +26,10 @@ dumpopts=${*:3} logxopts="--no-data" confopts=--defaults-extra-file=$extracnf if [[ -f "$extracnf" ]]; then - echo -e "\033[0;33mNOTE: defaults-extra-file \033[m" - grep -E "^(host|port|user)" "$extracnf" + echo -e "\033[0;33mNOTE: defaults-extra-file \033[m" + grep -E "^(host|port|user)" "$extracnf" else - echo -e "\033[0;31mERROR: should specific mysql config(at param-1), eg. ~/my.cnf\033[m" + echo -e "\033[0;31mERROR: should specific mysql config(at param-1), eg. ~/my.cnf\033[m" cat << 'EOF' [client] protocol=tcp @@ -45,19 +45,19 @@ net-buffer-length=64k set-gtid-purged=OFF single-transaction EOF - exit + exit fi unalias mysql >/dev/null 2>&1 unalias mysqldump >/dev/null 2>&1 if [[ "$database" == "" ]]; then - echo -e "\033[0;31mWARN: need database(at param-2) to dump, eg.\033[m" - echo "./wings-mysql-dump.sh wings-mysql-client.cnf database --no-data" - echo -e "\033[0;33mNOTE:current databases \033[m" - # shellcheck disable=SC2086 - mysql $confopts -N -e "show databases;" - exit + echo -e "\033[0;31mWARN: need database(at param-2) to dump, eg.\033[m" + echo "./wings-mysql-dump.sh wings-mysql-client.cnf database --no-data" + echo -e "\033[0;33mNOTE:current databases \033[m" + # shellcheck disable=SC2086 + mysql $confopts -N -e "show databases;" + exit fi ### @@ -71,42 +71,42 @@ dump_md5_file="$dump_head.md5" # shellcheck disable=SC2086 if ! mysql $confopts -D "$database" -N -e "show tables" > "$dump_tbl_file"; then - echo -e "\033[37;41;1mERROR: failed to show tables of $database \033[0m" - rm -rf "$dump_tbl_file" - exit + echo -e "\033[37;41;1mERROR: failed to show tables of $database \033[0m" + rm -rf "$dump_tbl_file" + exit fi logs_cnt=$(grep -cE '\$|__' "$dump_tbl_file") if [[ $logs_cnt == 0 ]]; then - echo "no logs tables to dump" - echo "-- no logs tables to dump" > "$dump_logs_file" + echo "no logs tables to dump" + echo "-- no logs tables to dump" > "$dump_logs_file" else - echo -e "\033[0;33mNOTE: dump logs tables without data, count=$logs_cnt\033[m" - - # shellcheck disable=SC2046,SC2086 - if mysqldump $confopts $dumpopts $logxopts \ - "$database" $(grep -E '\$|__' "$dump_tbl_file") > "$dump_logs_file"; then - echo "successfully dump logs" - else - echo -e "\033[37;41;1mERROR: failed to dump logs \033[0m" - exit - fi + echo -e "\033[0;33mNOTE: dump logs tables without data, count=$logs_cnt\033[m" + + # shellcheck disable=SC2046,SC2086 + if mysqldump $confopts $dumpopts $logxopts \ + "$database" $(grep -E '\$|__' "$dump_tbl_file") > "$dump_logs_file"; then + echo "successfully dump logs" + else + echo -e "\033[37;41;1mERROR: failed to dump logs \033[0m" + exit + fi fi main_cnt=$(grep -cvE '\$|__' "$dump_tbl_file") if [[ $main_cnt == 0 ]]; then - echo "no main tables to dump" - echo "-- no main tables to dump" > "$dump_main_file" + echo "no main tables to dump" + echo "-- no main tables to dump" > "$dump_main_file" else - echo -e "\033[0;33mNOTE: dump main tables with data, count=$main_cnt\033[m" - # shellcheck disable=SC2046,SC2086 - if mysqldump $confopts $dumpopts \ - "$database" $(grep -vE '\$|__' "$dump_tbl_file") > "$dump_main_file"; then - echo "successfully dump main" - else - echo -e "\033[37;41;1mERROR: failed to dump main \033[0m" - exit - fi + echo -e "\033[0;33mNOTE: dump main tables with data, count=$main_cnt\033[m" + # shellcheck disable=SC2046,SC2086 + if mysqldump $confopts $dumpopts \ + "$database" $(grep -vE '\$|__' "$dump_tbl_file") > "$dump_main_file"; then + echo "successfully dump main" + else + echo -e "\033[37;41;1mERROR: failed to dump main \033[0m" + exit + fi fi echo -e "\033[0;33mNOTE: dump file $dump_head\033[m" diff --git a/observe/scripts/wings-mysql-user.sh b/observe/scripts/wings-mysql-user.sh index 18d9976b..b6677651 100755 --- a/observe/scripts/wings-mysql-user.sh +++ b/observe/scripts/wings-mysql-user.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e THIS_VERSION=2023-11-09 cat </dev/null 2>&1 if [[ "$command" == "create" ]]; then - grep -v '^#' >> "$temp_sql" <> "$temp_sql" <> "$temp_sql" <> "$temp_sql" <> "$temp_sql" <> "$temp_sql" <> "$temp_sql" <> "$temp_sql" </dev/null 2>&1 - - if [[ -f "$option" ]]; then - echo -e "\033[0;33mNOTE: current option file \033[m" - cat "$option" - mysql --defaults-extra-file="$option" -vvv --force < "$temp_sql" - else - mysql -vvv --force < "$temp_sql" - fi + unalias mysql >/dev/null 2>&1 + + if [[ -f "$option" ]]; then + echo -e "\033[0;33mNOTE: current option file \033[m" + cat "$option" + mysql --defaults-extra-file="$option" -vvv --force < "$temp_sql" + else + mysql -vvv --force < "$temp_sql" + fi fi diff --git a/observe/scripts/wings-release.sh b/observe/scripts/wings-release.sh index d714c610..4e9b362d 100755 --- a/observe/scripts/wings-release.sh +++ b/observe/scripts/wings-release.sh @@ -1,5 +1,5 @@ -#!/bin/bash -THIS_VERSION=2023-05-25 +#!/bin/bash -e +THIS_VERSION=2024-03-05 cat </dev/null; then - echo -e "\033[31mERROR: need command $1 \033[0m" - exit + if ! command -v "$1" >/dev/null; then + # rc or init script + if [[ -f "$2" ]]; then + # shellcheck disable=SC1090 + source "$2" + elif [[ "$2" != "" ]]; then + echo -e "\033[33mWARN: no command=$1, no script=$2 \033[0m" + return 1 + else + echo -e "\033[31mERROR: no command=$1 \033[0m" + exit + fi fi } @@ -94,11 +103,9 @@ function build_mvn() { } function build_web() { - # node version + # nvm if [[ -f ".nvmrc" ]]; then - # shellcheck disable=SC1090 - source ~/.nvm/nvm.sh - nvm use + check_cmd nvm "$HOME/.nvm/nvm.sh" && nvm use fi _pre_pack @@ -158,6 +165,11 @@ function build_auto() { exit fi + ## https://asdf-vm.com + if [[ -f ".tool-versions" ]]; then + check_cmd asdf "$HOME/.asdf/asdf.sh" && asdf install + fi + # mvn if [[ -f "pom.xml" || "$1" == "mvn" ]]; then build_mvn @@ -205,6 +217,7 @@ fi if [[ "$WORK_DIR" == "" ]]; then WORK_DIR=$(dirname "$this_file") fi + cd "$WORK_DIR" || exit WORK_DIR=$(realpath -s "$WORK_DIR") echo "work-dir=$WORK_DIR" diff --git a/observe/scripts/wings-starter.sh b/observe/scripts/wings-starter.sh index 0eb56232..9b4d87cb 100755 --- a/observe/scripts/wings-starter.sh +++ b/observe/scripts/wings-starter.sh @@ -1,5 +1,5 @@ -#!/bin/bash -THIS_VERSION=2024-02-03 +#!/bin/bash -e +THIS_VERSION=2024-03-05 ################ system env to use ################ # JAVA_HOME # if JDK_HOME is not valid # JAVA_OPTS # prepend to java args