diff --git a/.gitignore b/.gitignore index 43a87ef..213d56f 100644 --- a/.gitignore +++ b/.gitignore @@ -85,4 +85,5 @@ yarn.lock # release release/debs/*.deb -release/tars/*.tar.gz \ No newline at end of file +release/tars/*.tar.gz +release/src-tars/*.tar.gz \ No newline at end of file diff --git a/bin/build.sh b/bin/build.sh index 7344b45..1e34347 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -2,7 +2,8 @@ ProjectL=wfc ProjectU=WFC RelDate=`date +%Y%m%d` -GitRootDir=${HOME}/wfc.git +#GitRootDir=${HOME}/wfc.git +GitRootDir=$(dirname $(dirname $(dirname $(realpath $0)))) BERootDir=${GitRootDir}/be.wfc FERootDir=${GitRootDir}/fe.wfc FEUserRootDir=${GitRootDir}/fe.wfc.user @@ -11,25 +12,49 @@ BuildRootDir=${GitRootDir}/build.wfc WFCWorkDir=/opt/wfc BuildDockerDir=${BuildRootDir}/build/docker ReleseDir=${BuildRootDir}/release -#TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz TmpDir=${BuildRootDir}/tmp TmpEnvFile=${TmpDir}/.env.tmp usage() { - echo "Usage: sh build.sh [extras|jar|dist|copy|tar|deb|all]" + echo "Usage: sh build.sh [-g] [extras|jar|dist|copy|tar|src-tar|deb|all]" exit 1 } -pre_build_tar(){ +SKIP_PRE_GIT_PULL=false + +while getopts "g" opt; do + case ${opt} in + g ) + SKIP_PRE_GIT_PULL=true + ;; + \? ) + usage + ;; + esac +done +shift $((OPTIND -1)) + +pre-build-tar(){ if [ ! -d ${ReleseDir}/tars ]; then mkdir -p ${ReleseDir}/tars fi - if [ -f ${BuildDockerDir}/.env ]; then - mv -f ${BuildDockerDir}/.env ${TmpEnvFile} - fi + source ${BuildRootDir}/bin/control.sh } -pre_build_deb(){ +pre-git-pull(){ + cd ${BERootDir} + git pull + cd ${FERootDir} + git checkout src/typings/ + git pull + cd ${FEUserRootDir} + git checkout src/typings/ + git pull + cd ${BuildRootDir} + git pull +} + +pre-build-deb(){ if [ ! -d ${ReleseDir}/debs ]; then mkdir -p ${ReleseDir}/debs fi @@ -40,9 +65,6 @@ pre_build_deb(){ build-extras(){ cd ${BuildRootDir} - git pull - source ${BuildRootDir}/bin/control.sh - TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz echo -n "Begin build extras file ... " cd ${BuildRootDir}/bin javac -source 8 -target 8 -bootclasspath /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar -extdirs "" -Xlint:-options printJarVer.java @@ -51,20 +73,32 @@ build-extras(){ build-jar(){ cd ${BERootDir} - git pull + # git pull mvn clean package -Dmaven.test.skip=true -P prod } +pre-build-src-tar(){ + if [ ! -d ${ReleseDir}/src-tars ]; then + mkdir -p ${ReleseDir}/src-tars + fi + source ${BuildRootDir}/bin/control.sh +} + +clean-jar(){ + cd ${BERootDir} + mvn clean +} + build-dist(){ cd ${FERootDir} - git checkout src/typings/ - git pull + # git checkout src/typings/ + # git pull pnpm i pnpm build cd ${FEUserRootDir} - git checkout src/typings/ - git pull + # git checkout src/typings/ + # git pull if ! pnpm list terser --depth 0 &> /dev/null; then pnpm add terser --save-dev fi @@ -73,15 +107,16 @@ build-dist(){ } copy-file(){ - ${BuildRootDir}/bin/copy.sh + ${BuildRootDir}/bin/copy.sh ${GitRootDir} cp -f ${BuildRootDir}/bin/printJarVer.class ${BuildRootDir}/build/bin/ } # create tar package create-tar(){ - echo -n "Begin build tar package ... " + TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz + echo -n "Begin build tar package(${TarFileName}) ... " cd ${BuildRootDir}/build - tar cvfz ${ReleseDir}/tars/${TarFileName} \ + tar cvfz ${ReleseDir}/tars/${TarFileName} \ --exclude='./docker/mysql/logs' \ --exclude='./docker/mysql/data' \ --exclude='./docker/mysql/tmp' \ @@ -92,13 +127,46 @@ create-tar(){ echo "done" } +# create source tar package +create-src-tar(){ + SrcTarFileName=${ProjectL}-${RelVersion}-${RelDate}.src.tar.gz + echo -n "Begin build source tar package(${SrcTarFileName}) ... " + WFCRelativeDir=./wfc.git + BeRelativeDir=${WFCRelativeDir}/be.wfc + FeRelativeDir=${WFCRelativeDir}/fe.wfc + FeUserRelativeDir=${WFCRelativeDir}/fe.wfc.user + BuildRelativeDir=${WFCRelativeDir}/build.wfc + cd ${HOME} + tar cvfz ${ReleseDir}/src-tars/${SrcTarFileName} \ + --exclude=${WFCRelativeDir}/.vscode \ + --exclude=${BeRelativeDir}/.vscode \ + --exclude=${FeRelativeDir}/.vscode \ + --exclude=${FeUserRelativeDir}/.vscode \ + --exclude=${BuildRelativeDir}/.vscode \ + --exclude=${BeRelativeDir}/.github \ + --exclude=${BeRelativeDir}/tmp \ + --exclude=${BuildRelativeDir}/tmp \ + --exclude=${FeRelativeDir}/dist \ + --exclude=${FeRelativeDir}/node_modules \ + --exclude=${FeUserRelativeDir}/dist \ + --exclude=${FeUserRelativeDir}/node_modules \ + --exclude=${BuildRelativeDir}/release \ + --exclude=${BuildRelativeDir}/build/docker/wfc/auth/jar/*.jar \ + --exclude=${BuildRelativeDir}/build/docker/wfc/gateway/jar/*.jar \ + --exclude=${BuildRelativeDir}/build/docker/wfc/modules/*/jar/*.jar \ + --exclude=${BuildRelativeDir}/build/docker/wfc/visual/jar/*.jar \ + --exclude=${BuildRelativeDir}/bin/cpto205.sh \ + ${WFCRelativeDir} 1>/dev/null + echo "done" +} + # create deb package create-deb(){ echo -n "Begin build deb package ... " echo "done" } -post_build(){ +post-build(){ if [ -f ${TmpEnvFile} ] && [ ! -f ${BuildDockerDir}/.env ]; then mv -f ${TmpEnvFile} ${BuildDockerDir}/.env fi @@ -118,22 +186,37 @@ case "$1" in copy-file ;; "tar") - # pre_build_tar + if [ "$SKIP_PRE_GIT_PULL" = false ]; then + pre-git-pull + fi + pre-build-tar build-extras build-jar build-dist copy-file create-tar - # post_build + # post-build ;; "deb") - # pre_build_deb + if [ "$SKIP_PRE_GIT_PULL" = false ]; then + pre-git-pull + fi + # pre-build-deb build-extras build-jar build-dist copy-file create-deb - # post_build + # post-build + ;; + "src-tar") + if [ "$SKIP_PRE_GIT_PULL" = false ]; then + pre-git-pull + fi + pre-build-src-tar + clean-jar + create-src-tar + # post-build ;; "all") $0 tar diff --git a/bin/copy.sh b/bin/copy.sh index 56ec32d..4412d07 100755 --- a/bin/copy.sh +++ b/bin/copy.sh @@ -1,6 +1,6 @@ #!/bin/bash -GitRootDir=${HOME}/wfc.git +GitRootDir=$(dirname $(dirname $(dirname $(realpath $0)))) BERootDir=${GitRootDir}/be.wfc FERootDir=${GitRootDir}/fe.wfc FEUserRootDir=${GitRootDir}/fe.wfc.user @@ -16,6 +16,10 @@ usage() { exit 1 } +if [ $# -ne 1 ]; then + GitRootDir=$1 +fi + # copy sql echo -n "Begin copy sql ... " cp ${BERootDir}/sql/wfc_config_db/wfc_config_db.sql ${BuildDockerDir}/mysql/db diff --git a/bin/cpto205.sh b/bin/cpto205.sh index f03f351..40cc0c5 100755 --- a/bin/cpto205.sh +++ b/bin/cpto205.sh @@ -1,6 +1,6 @@ #!/bin/bash -git_root_dir=${HOME}/wfc.git +git_root_dir=$(dirname $(dirname $(dirname $(realpath $0)))) build_root_dir=${git_root_dir}/build.wfc build_doc_dir=${build_root_dir}/docs/03-configuration local_tars_rel_dir=${build_root_dir}/release/tars diff --git a/release/src-tars/readme.txt b/release/src-tars/readme.txt new file mode 100644 index 0000000..77d9694 --- /dev/null +++ b/release/src-tars/readme.txt @@ -0,0 +1 @@ +src tar package is here \ No newline at end of file