1、更新代码 fetch/merge
git 提供的merge 合并分支到master
macOS/linux
#!/bin/zsh
update_repo_code ()
{
echo "开始合并浙江人大代表综合应用前端代码..."
cd /Users/kuai/Projects/zjrd/zjrd-represent-app
git fetch
git merge origin/develop
CONFLICTS=$(git ls-files -u | wc -l)
if [ "$CONFLICTS" -gt 0 ] ; then
echo "前端代码冲突了,已终止部署"
git merge --abort
exit 1
fi
echo "开始合并浙江人大代表综合应用后端代码"
cd /Users/kuai/Projects/zjrd/zjrd-databoard
git fetch
git merge origin/develop
CONFLICTS=$(git ls-files -u | wc -l)
if [ "$CONFLICTS" -gt 0 ] ; then
echo "后端代码冲突了,已终止部署"
git merge --abort
exit 1
fi
}
update_repo_code ()
powershell
//TODO
2、自动打包 build
前端:yarn build构建,zip打包压缩
后端:mvn package,注意这里通过sed命令替换激活的yaml配置文件
macOS/linux
if [ "$options" == "all" -o "$options" == "app" ]
then
cd /Users/kuai/Projects/zjrd/zjrd-represent-app
echo "开始打包浙江人大代表综合应用前端代码..."
yarn run build:mm
rm -rf /Users/kuai/Downloads/srddbgz.war
cd dist
zip -r /Users/kuai/Downloads/srddbgz.war ./*
fi
if [ "$options" == "all" -o "$options" == "admin" ]
then
cd /Users/kuai/Projects/zjrd/zjrd-databoard
echo "开始合并浙江人大代表综合应用后端代码"
echo "yaml文件激活为production"
sed -i '' 's/active: default/active: production, default/g' src/main/resources/application.yaml
echo "开始打包浙江人大代表综合应用后端代码"
mvn -Dmaven.multiModuleProjectDirectory=/Users/kuai/Projects/zjrd/zjrd-databoard -Dfile.encoding=UTF-8 -DskipTests=true -Prelease package
echo "yaml文件切换回为default模式"
sed -i '' 's/active: production, default/active: default/g' src/main/resources/application.yaml
rm -rf /Users/kuai/Downloads/databoard.war
mv target/databoard-0.0.4-SNAPSHOT.war target/databoard.war
mv target/databoard.war /Users/kuai/Downloads/databoard.war
fi
3、自动发版 deploy
通过sftp远程把文件自动上传到相关服务器中,配合tomcat或TongWeb中间件的自动更新能力。
macOS/linux
if [ "$options" == "all" ]
then
sftp zjrddms <<EOF
put /Users/kuai/Downloads/srddbgz.war /data/software/TongWeb7956/autodeploy
put /Users/kuai/Downloads/databoard.war /data/software/TongWeb7956/autodeploy
exit
EOF
elif [ "$options" == "app" ]
then
sftp zjrddms <<EOF
put /Users/kuai/Downloads/srddbgz.war /data/software/TongWeb7956/autodeploy
exit
EOF
elif [ "$options" == "admin" ]
then
sftp zjrddms <<EOF
put /Users/kuai/Downloads/databoard.war /data/software/TongWeb7956/autodeploy
exit
EOF
fi
powershell
//TODO
4、发布到IRS应用(可选)
macOS/linux
if [ "$options" == "ding-dbllz" ]
then
echo "开始打包IRS应用【代表信息】"
cd /Users/kuai/Projects/zjrd/zjrd-represent-app
# 指定配置路径
sed -i '' 's/\/dbLlz\/dbLlzmap/\/dbInfo\/index/g' vue.config.js
sed -i '' 's/ZLRD_DAIBIAOLIANLUOZHAN/ZLRD_DAIBIAOXINXI/g' vue.config.js
# 删除之前的打包
rm -rf /Users/kuai/Downloads/zjrd-represent-app.zip
# 压缩源代码,排除不需要的文件
zip -r9 /Users/kuai/Downloads/zjrd-represent-app.zip ./* -x node_modules/\* .git/\* dist/\* build/\* public/wlxy/\*
# 把配置路径改回来
sed -i '' 's/\/dbInfo\/index/\/dbLlz\/dbLlzmap/g' vue.config.js
sed -i '' 's/ZLRD_DAIBIAOXINXI/ZLRD_DAIBIAOLIANLUOZHAN/g' vue.config.js
# finder中打开定位到该文件,方便直接拖动文件到网页上上传
open -R /Users/kuai/Downloads/zjrd-represent-app.zip
# 把自动提升的版本号复制到剪贴板中,方便复制粘贴
echo $new_version | pbcopy
echo "完成打包IRS应用【代表信息】"
fi
远程连接部署jar包
登录堡垒机(阿里云)-->主机运维-->小黑窗
- cd 路径
- ps -ef | grep msssjd
- kill 端口号
- 删除logs、nohup、jar包(备份一下原来的jar包)
- 桌面文件移动到/root/projects/yesd/api
-
nohup java -dfile.encoding=utf-8 -jar jar包名 &
- tail -f nohup.out 查看日志 也可以文件中直接查看nohup
注:第6步 不加nohup的话 远程关闭后服务就终止了
nohup.out文件太大 需要压缩
cd 压缩路径 cd project/yesd/api/
1.1、压缩
tar -cvf [文件名].tar [文件目录] //打包成.tar文件
tar -jcvf [文件名].tar.bz2 [文件目录] //打包成.bz2文件
tar -zcvf [文件名].tar.gz [文件目录] //打包成.gz文件
1.2、解压缩
tar -xvf [文件名].tar //解压到当前文件
tar -xvf [文件名].tar -C [文件目录] //将.tar文件解压到指定目录
tar -jxvf [文件名].tar.bz2 -C [文件目录] //解压.bz2文件到指定目录
tar -zxvf [文件名].tar.gz -C [文件目录] //解压.gz文件到指定目录
1.3、常用选项
-c 建立新的压缩文件
-C 指定解压目录,该目录必须存在
-x 从压缩的文件中提取文件
-j 支持bzip2解压文件
-f 指定压缩文件
-v 显示操作过程
-z 支持gzip解压文件