فهرست منبع

005sync_code_test_tmp.sh

lizw-2015 1 هفته پیش
والد
کامیت
073316d9b5
1فایلهای تغییر یافته به همراه222 افزوده شده و 0 حذف شده
  1. 222 0
      dsl/005sync_code_test_tmp.sh

+ 222 - 0
dsl/005sync_code_test_tmp.sh

@@ -0,0 +1,222 @@
+#!/bin/bash
+#set -x
+set -e
+
+source_path=/home/www/sync_code/sd_dsl/wms85std-test
+source_git=(
+  "www@git.yvanui.com:jztd/wms85std.git"
+  "www@git.yvanui.com:lizhiwei/yvan-framework.git"
+  "www@git.yvanui.com:luoyifan/yvan-ui.git"
+)
+source_branch=(
+  "sd_dsl2"
+  "8.6"
+  "master"
+)
+source_position=(
+  "."
+  "yvan-framework"
+  "yvan-ui"
+)
+
+target_path=/home/www/sync_code/sd_dsl/wms85std-sd-test
+target_git=www@git.yvanui.com:lizhiwei/wms85std-sd.git
+target_branch=release/test
+target_position=.
+
+echoPrefix="\033[36m+"
+echoSuffix="\033[0m"
+
+# 强制覆盖本地的代码 git fetch --all &&  git reset --hard origin/master
+pullCode() {
+  # Usage: pullCode "codePath" "gitUrl" "branch" "position"
+  path=$1                   # 代码保存路径
+  gitUrl=$2                 # git仓库地址
+  branch=${3:-"master"}     # git分支
+  position=${4:-""}         # 使用“.”clone到当前文件夹
+  # 创建文件夹
+  if [ ! -d "$path" ]; then
+    echo -e "$echoPrefix 请检查服务器是否正确,再执行: mkdir -p $path $echoSuffix"
+    exit
+  fi
+
+  # git clone
+  echo -e "$echoPrefix cd $path $echoSuffix"
+  cd $path
+  if [ "`ls -A $path`" == "" ] || [ ! -d "$path/$position" ] || [ "`ls -A $path/$position`" = "" ]; then
+    echo -e "$echoPrefix git clone $gitUrl $position $echoSuffix"
+    git clone $gitUrl $position
+  fi
+
+  # 进入文件夹,切换分支,git pull
+  if [ "$position" != "" ]; then
+    echo -e "$echoPrefix cd $position $echoSuffix"
+    cd $position
+  fi
+  echo -e "$echoPrefix git checkout $branch $echoSuffix"
+  git checkout $branch
+  echo -e "$echoPrefix git checkout . $echoSuffix"
+  git checkout .
+  echo -e "$echoPrefix git pull $echoSuffix"
+  if [ "`git pull`" == "Already up-to-date." ]; then
+    echo ""
+  fi
+  echo ""
+}
+
+source_pull() {
+  for ((idx=0; idx<${#source_git[@]}; idx++)); do
+    pullCode $source_path ${source_git[idx]} ${source_branch[idx]} ${source_position[idx]}
+  done
+}
+
+source_build() {
+  # 构建 java
+  echo -e "$echoPrefix cd $source_path $echoSuffix"
+  cd $source_path
+  echo -e "$echoPrefix gradle build -x test $echoSuffix"
+  gradle build -x test
+  echo ""
+
+  # 构建 yvan-ui
+  echo -e "$echoPrefix cd $source_path/yvan-ui $echoSuffix"
+  cd $source_path/yvan-ui
+  echo -e "$echoPrefix yarn install $echoSuffix"
+  yarn install
+  echo -e "$echoPrefix yarn run build_only $echoSuffix"
+  yarn run build_only
+}
+
+target_pull() {
+  pullCode $target_path ${target_git} ${target_branch} ${target_position}
+}
+
+target_build() {
+  # 构建 java
+  echo -e "$echoPrefix cd $target_path $echoSuffix"
+  cd $target_path
+  echo -e "$echoPrefix gradle build -x test $echoSuffix"
+  gradle build -x test
+  echo ""
+}
+
+sync_files() {
+  echo -e "$echoPrefix 开始同步: $source_path $echoSuffix"
+  rsync -azr --progress --delete \
+    --exclude '.git/' \
+    --exclude '.gradle/' \
+    --exclude '.httpCache/' \
+    --exclude '.idea/' \
+    --exclude 'logs/' \
+    --exclude 'build/' \
+    --exclude 'out/' \
+    --exclude 'libs/' \
+    --exclude 'node_modules/' \
+    --exclude 'yvan-framework/' \
+    --exclude 'yvan-ui/' \
+    --exclude 'yvan-ui-dist/' \
+    --exclude 'build.gradle' \
+    --exclude 'settings.gradle' \
+    --exclude 'application*' \
+    --exclude 'bootstrap*' \
+    --exclude 'wms-print/' \
+    --exclude 'generated/' \
+    --exclude 'generated_tests/' \
+    --exclude '*.bpmn' \
+    --exclude 'wms-modules/yvan-studio/' \
+    --exclude 'gradle.properties' \
+    --exclude 'gradle-wrapper.properties' \
+    --exclude 'Dockerfile*' \
+    $source_path/ $target_path
+  echo -e "$echoPrefix 同步完成 $echoSuffix"
+
+  echo -e "$echoPrefix 开始同步 $source_path/yvan-framework/yvan-studio $echoSuffix"
+  rsync -azr --progress --delete \
+    --exclude '.git/' \
+    --exclude '.gradle/' \
+    --exclude '.httpCache/' \
+    --exclude '.idea/' \
+    --exclude 'logs/' \
+    --exclude 'build/' \
+    --exclude 'out/' \
+    --exclude 'libs/' \
+    --exclude 'node_modules/' \
+    --exclude 'yvan-framework/' \
+    --exclude 'src/main/java/' \
+    --exclude 'src/main/resources/' \
+    --exclude 'src/test/' \
+    --exclude 'yvan-ui/' \
+    --exclude 'build.gradle' \
+    --exclude 'settings.gradle' \
+    --exclude 'application*' \
+    --exclude 'bootstrap*' \
+    --exclude 'generated/' \
+    --exclude 'generated_tests/' \
+    --exclude '*.bpmn' \
+    --exclude 'gradle.properties' \
+    --exclude 'gradle-wrapper.properties' \
+    --exclude 'Dockerfile*' \
+    $source_path/yvan-framework/yvan-studio $target_path/wms-modules
+  echo -e "$echoPrefix 同步完成 $echoSuffix"
+
+  echo -e "$echoPrefix 开始同步 lib $echoSuffix"
+  rsync -azr --progress \
+    --include '/yvan-*' \
+    --include '/wms-core-*' \
+    --include '/wms-api-*' \
+    --exclude='*' \
+    $source_path/wms-modules/wms-system/build/libs/lib/ $target_path/libs
+  echo -e "$echoPrefix 同步完成 $echoSuffix"
+
+  echo -e "$echoPrefix 开始同步 yvan-ui $echoSuffix"
+  rsync -azr --progress --delete $source_path/yvan-ui/dist/ $target_path/yvan-ui-dist/dist
+  echo -e "$echoPrefix 同步完成 $echoSuffix"
+
+  echo -e "$echoPrefix 处理前端资源缓存 $echoSuffix"
+  version=$(date +_%Y_%m_%d_%H_%M_%S)
+  echo -e "$echoPrefix sed -i 's/_[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}/$version/g' $target_path/wms-ui/index.html $echoSuffix"
+  sed -i "s/_[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}/$version/g" $target_path/wms-ui/index.html
+  echo -e "$echoPrefix sed -i 's|/yvan-ui.mjs|/yvan-ui.mjs?v=$version|g' $target_path/wms-ui/index.html $echoSuffix"
+  sed -i "s|/yvan-ui.mjs|/yvan-ui.mjs?v=$version|g" $target_path/wms-ui/index.html
+  echo -e "$echoPrefix sed -i 's|/yvan-ui.mjs|/yvan-ui.mjs?v=$version|g' $target_path/yvan-ui-dist/dist/js/*.js $echoSuffix"
+  sed -i "s|/yvan-ui.mjs|/yvan-ui.mjs?v=$version|g" $target_path/yvan-ui-dist/dist/js/*.js
+  echo -e "$echoPrefix 处理前端资源缓存-完成 $echoSuffix"
+}
+
+commit_target() {
+  echo -e "$echoPrefix cd $target_path $echoSuffix"
+  cd $target_path
+  echo -e "$echoPrefix git add --all . $echoSuffix"
+  git add --all .
+  echo -e "$echoPrefix git commit -m '代码同步' $echoSuffix"
+  git commit -m '代码同步'
+  echo -e "$echoPrefix git push origin $target_branch $echoSuffix"
+  git push origin $target_branch
+}
+
+source_pull
+target_pull
+source_build
+target_pull
+sync_files
+target_build
+commit_target
+
+cmd=$1
+kls_source_path=/home/www/sync_code/sd_dsl/wms85std-sd-dsl-test
+
+echo -e "$echoPrefix cd $kls_source_path $echoSuffix"
+cd $kls_source_path
+echo -e "$echoPrefix git checkout -b release/test kls/release/test $echoSuffix"
+git checkout -b release/test kls/release/test || true
+echo -e "$echoPrefix git checkout release/test $echoSuffix"
+git checkout release/test
+echo -e "$echoPrefix git pull kls release/test:release/test -f $echoSuffix"
+git pull kls release/test:release/test -f
+
+echo -e "$echoPrefix git push dsl release/test:release/test -f $echoSuffix"
+git push dsl release/test:release/test -f
+echo ""
+echo "接下来:登录大参林能笑平台,等待构建完成,手动部署应用。[$(date +%Y-%m-%d' '%H:%M:%S)]"
+
+# bash <(curl -s http://git.yvanui.com/lizhiwei/jztd-deploy/raw/master/dsl/005sync_code_test_tmp.sh)