2
0

feat: build for 3rd party

This commit is contained in:
zhangsz
2025-02-14 16:44:50 +08:00
parent 2ae37cc588
commit 1be2941c4a
5 changed files with 116 additions and 27 deletions

3
.gitignore vendored
View File

@@ -85,4 +85,5 @@ yarn.lock
# release
release/debs/*.deb
release/tars/*.tar.gz
release/tars/*.tar.gz
release/src-tars/*.tar.gz

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1 @@
src tar package is here