opt: optize build shell for multi-branch
This commit is contained in:
107
build.sh
107
build.sh
@@ -1,27 +1,56 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
while getopts "m:r:d" option; do
|
usage() {
|
||||||
|
echo "Usage: $0 [OPTION] deb|rpm"
|
||||||
|
echo
|
||||||
|
echo "Build omc package, option as follow:"
|
||||||
|
echo " deb|rpm, deb: ubuntu|debian package build by dpkg"
|
||||||
|
echo " rpm: centos/redhat package, build by rpmbuild"
|
||||||
|
echo " -r, =build root directory build root directory, default directory is $HOME/local.git"
|
||||||
|
echo " -d dump SQL from database"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgtype=""
|
||||||
|
new_args=()
|
||||||
|
# Traverse all parameters
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [[ "$arg" == "deb" || "$arg" == "rpm" ]]; then
|
||||||
|
pkgtype=$arg
|
||||||
|
else
|
||||||
|
new_args+=("$arg") # Add non pkgtype parameters to a new parameter list
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$pkgtype" ]; then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use a new parameter list
|
||||||
|
set -- "${new_args[@]}"
|
||||||
|
|
||||||
|
GitLocalRoot=${HOME}/local.git
|
||||||
|
while getopts "r:d" option; do
|
||||||
case $option in
|
case $option in
|
||||||
m)
|
|
||||||
m_arg=$(echo $OPTARG | tr '[:upper:]' '[:lower:]')
|
|
||||||
;;
|
|
||||||
r)
|
r)
|
||||||
r_arg=$OPTARG
|
GitLocalRoot=$OPTARG
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
dumpflag="yes"
|
dumpdb="yes"
|
||||||
;;
|
;;
|
||||||
\?)
|
\?)
|
||||||
echo "Invalid option: -$OPTARG" >&2
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
usage
|
||||||
|
exit 2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
GitLocalRoot=${HOME}/local.git
|
if [ ! -d ${GitLocalRoot} ]; then
|
||||||
if [ -n ${r_arg} ]; then
|
echo "Not exist directory: ${GitLocalRoot}"
|
||||||
GitLocalRoot=${r_arg}
|
exit 3
|
||||||
fi
|
fi
|
||||||
echo "GitLocalRoot=${GitLocalRoot}"
|
|
||||||
|
|
||||||
ProjectL=omc
|
ProjectL=omc
|
||||||
ProjectU=OMC
|
ProjectU=OMC
|
||||||
@@ -40,8 +69,6 @@ RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS/
|
|||||||
ReleaseDir=${EmsBuildRoot}/release
|
ReleaseDir=${EmsBuildRoot}/release
|
||||||
DumpToolDir=${EmsBEDir}/tools/misc
|
DumpToolDir=${EmsBEDir}/tools/misc
|
||||||
|
|
||||||
PLATFORM=amd64
|
|
||||||
ARMPLATFORM=aarch64
|
|
||||||
BuildDir=${EmsBuildRoot}/build
|
BuildDir=${EmsBuildRoot}/build
|
||||||
BuildOMCDir=${BuildDir}/usr/local/omc
|
BuildOMCDir=${BuildDir}/usr/local/omc
|
||||||
BuildOMCBinDir=${BuildOMCDir}/bin
|
BuildOMCBinDir=${BuildOMCDir}/bin
|
||||||
@@ -77,7 +104,6 @@ DBSQLSrcDir=${EmsBEDir}/database
|
|||||||
MiscDir=${EmsBEDir}/misc
|
MiscDir=${EmsBEDir}/misc
|
||||||
FrontBuildDir=${BuildOMCDir}/htdocs
|
FrontBuildDir=${BuildOMCDir}/htdocs
|
||||||
FrontSrcDir=${EmsBEDir}/front
|
FrontSrcDir=${EmsBEDir}/front
|
||||||
ReleaseDebs=${ReleaseDir}/debs/${PLATFORM}
|
|
||||||
CrontaskSize=27788951
|
CrontaskSize=27788951
|
||||||
RestagentSize=29525312
|
RestagentSize=29525312
|
||||||
BinWriterDir=${HOME}/bin
|
BinWriterDir=${HOME}/bin
|
||||||
@@ -87,26 +113,19 @@ if [[ ${RpmArch} =~ "x86_64" ]];then
|
|||||||
elif [[ ${RpmArch} =~ "aarch64" ]];then
|
elif [[ ${RpmArch} =~ "aarch64" ]];then
|
||||||
RelArch=arm64
|
RelArch=arm64
|
||||||
fi
|
fi
|
||||||
|
ReleasePkgDir=${ReleaseDir}/"${pkgtype}"s/${RelArch}
|
||||||
|
|
||||||
ProcList="restagent crontask sshsvc captrace data2html"
|
case "${pkgtype}" in
|
||||||
cd $EmsBEDir
|
rpm)
|
||||||
for procName in $ProcList;do
|
ProcList="restagent crontask sshsvc captrace data2html"
|
||||||
|
cd $EmsBEDir
|
||||||
|
for procName in $ProcList;do
|
||||||
cd $EmsBEDir/$procName
|
cd $EmsBEDir/$procName
|
||||||
echo "Make $procName ..."
|
echo "Make $procName ..."
|
||||||
make
|
make
|
||||||
done
|
done
|
||||||
|
|
||||||
#Get SQL from database
|
|
||||||
if [ ${dumpflag} = "yes" ]; then
|
|
||||||
cd ${DumpToolDir}
|
|
||||||
chmod +x ${DumpToolDir}/dumpdb.sh
|
|
||||||
${DumpToolDir}/dumpdb.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
rpm)
|
|
||||||
cd $EmsBEDir
|
cd $EmsBEDir
|
||||||
|
|
||||||
# make rpm
|
# make rpm
|
||||||
# clear build cache
|
# clear build cache
|
||||||
rm -rf ${FrontBuildDir}/front/*
|
rm -rf ${FrontBuildDir}/front/*
|
||||||
@@ -132,8 +151,8 @@ case "$1" in
|
|||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
||||||
#Get SQL from database, recover from git
|
#Get SQL from database, overwrite from git
|
||||||
if [ "$2" = "db" ]; then
|
if [ "$dumpdb" = "yes" ]; then
|
||||||
cd ${DumpToolDir}
|
cd ${DumpToolDir}
|
||||||
chmod +x ${DumpToolDir}/dumpsql.sh
|
chmod +x ${DumpToolDir}/dumpsql.sh
|
||||||
${DumpToolDir}/dumpsql.sh
|
${DumpToolDir}/dumpsql.sh
|
||||||
@@ -150,13 +169,21 @@ case "$1" in
|
|||||||
cd ${RpmBuildDir}
|
cd ${RpmBuildDir}
|
||||||
rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec
|
rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec
|
||||||
|
|
||||||
mv -f $RpmsDir/$RpmArch/$RpmPkgName $ReleaseDir/"$1"s/$RelArch/$RpmPkgRename
|
mv -f $RpmsDir/$RpmArch/$RpmPkgName ${ReleasePkgDir}/$RpmPkgRename
|
||||||
cd $ReleaseDir/"$1"s/$RelArch
|
cd ${ReleasePkgDir}
|
||||||
rm -f omc-md5sum.txt
|
rm -f omc-md5sum.txt
|
||||||
# rpm --addsign *.rpm
|
# rpm --addsign *.rpm
|
||||||
md5sum $RpmPkgRename >omc-md5sum.txt
|
md5sum $RpmPkgRename >omc-md5sum.txt
|
||||||
;;
|
;;
|
||||||
deb)
|
deb)
|
||||||
|
ProcList="restagent crontask sshsvc captrace data2html"
|
||||||
|
cd $EmsBEDir
|
||||||
|
for procName in $ProcList;do
|
||||||
|
cd $EmsBEDir/$procName
|
||||||
|
echo "Make $procName ..."
|
||||||
|
make
|
||||||
|
done
|
||||||
|
|
||||||
VersionID=`grep VERSION_ID /etc/os-release`
|
VersionID=`grep VERSION_ID /etc/os-release`
|
||||||
if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then
|
if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then
|
||||||
DebBuildDir=${DebBuild2204Dir}
|
DebBuildDir=${DebBuild2204Dir}
|
||||||
@@ -190,8 +217,8 @@ case "$1" in
|
|||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
||||||
#Get SQL from database, recover from git
|
#Get SQL from database, overwrite from git
|
||||||
if [ "$2" = "db" ]; then
|
if [ "${dumpdb}" = "yes" ]; then
|
||||||
cd ${DumpToolDir}
|
cd ${DumpToolDir}
|
||||||
chmod +x ${DumpToolDir}/dumpsql.sh
|
chmod +x ${DumpToolDir}/dumpsql.sh
|
||||||
${DumpToolDir}/dumpsql.sh
|
${DumpToolDir}/dumpsql.sh
|
||||||
@@ -208,19 +235,15 @@ case "$1" in
|
|||||||
chmod +x ${DebBuildDir}/usr/local/omc/bin/*
|
chmod +x ${DebBuildDir}/usr/local/omc/bin/*
|
||||||
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
|
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
|
||||||
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: agtuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
|
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: agtuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
|
||||||
dpkg -b ${DebBuildDir} ${ReleaseDebs}/${DebPkgFile}
|
dpkg -b ${DebBuildDir} ${ReleasePkgDir}/${DebPkgFile}
|
||||||
|
|
||||||
cd $ReleaseDir/"$1"s/$RelArch
|
cd ${ReleasePkgDir}
|
||||||
rm -f omc-md5sum.txt
|
rm -f omc-md5sum.txt
|
||||||
# rpm --addsign *.rpm
|
# rpm --addsign *.rpm
|
||||||
md5sum $DebPkgName >omc-md5sum.txt
|
md5sum ${DebPkgName} >omc-md5sum.txt
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 rpm|deb -r root directory -d"
|
usage
|
||||||
echo
|
exit 4
|
||||||
echo "Build omc package"
|
|
||||||
echo "rpm|deb, rpm rpm package / ubuntu|debian package"
|
|
||||||
echo "-r, =root directory build root directory, default directory is $HOME/local.git"
|
|
||||||
echo "-d dump SQL from database"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
93
makepkg.sh
Normal file
93
makepkg.sh
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $0 deb|rpm [option]..."
|
||||||
|
echo
|
||||||
|
echo "Make omc package, option as follow:"
|
||||||
|
echo " deb|rpm, deb: ubuntu|debian package build by dpkg"
|
||||||
|
echo " rpm: centos/redhat package, build by rpmbuild"
|
||||||
|
echo " -r, =build root directory build root directory, default directory is $HOME/local.git"
|
||||||
|
echo " -d dump SQL from database"
|
||||||
|
echo " -m, =be|fe|all be: only process back-end code, default if non input"
|
||||||
|
echo " fe: only process front-end code"
|
||||||
|
echo " all: process all include be and fe"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgtype=""
|
||||||
|
new_args=()
|
||||||
|
be_args=()
|
||||||
|
# Traverse all parameters
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [[ "$arg" == "deb" || "$arg" == "rpm" ]]; then
|
||||||
|
pkgtype=$arg
|
||||||
|
be_args+=("$arg")
|
||||||
|
else
|
||||||
|
new_args+=("$arg") # Add non pkgtype parameters to a new parameter list
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$pkgtype" ]; then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use a new parameter list
|
||||||
|
set -- "${new_args[@]}"
|
||||||
|
|
||||||
|
rootdir=${HOME}/local.git
|
||||||
|
m_arg="*"
|
||||||
|
while getopts "m:r:d" option; do
|
||||||
|
case $option in
|
||||||
|
m)
|
||||||
|
m_arg=$(echo $OPTARG | tr '[:upper:]' '[:lower:]')
|
||||||
|
;;
|
||||||
|
r)
|
||||||
|
rootdir=$OPTARG
|
||||||
|
be_args+=("-r ${rootdir}")
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
be_args+=("-d")
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
usage
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -d ${rootdir} ]; then
|
||||||
|
echo "Not exist directory: ${rootdir}"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
bedir=${rootdir}/be.ems
|
||||||
|
fedir=${rootdir}/fe.ems.vue3
|
||||||
|
builddir=${rootdir}/build.ems
|
||||||
|
|
||||||
|
makefe() {
|
||||||
|
cd ${fedir}
|
||||||
|
git pull
|
||||||
|
npm install --registry https://registry.npmmirror.com
|
||||||
|
npm run build
|
||||||
|
}
|
||||||
|
|
||||||
|
makebe() {
|
||||||
|
cd ${builddir}
|
||||||
|
#chmod +x mkpkg.sh
|
||||||
|
chmod +x build.sh
|
||||||
|
./build.sh ${be_args[@]}
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${m_arg}" in
|
||||||
|
fe)
|
||||||
|
makefe
|
||||||
|
;;
|
||||||
|
all)
|
||||||
|
makefe
|
||||||
|
makebe
|
||||||
|
;;
|
||||||
|
be | *)
|
||||||
|
makebe
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user