Skip to content

Commit c3d019f

Browse files
jss-tgipcjs
andauthored
perf: 部署脚本支持指定目录 (#8)
* perf: 部署脚本支持指定目录 * wip: 支持传入--dir=xxx参数 --------- Co-authored-by: ipcjs.mac4 <gipcjs@gmail.com>
1 parent 3c17bf8 commit c3d019f

File tree

2 files changed

+50
-28
lines changed

2 files changed

+50
-28
lines changed

projects/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
# 确认https://github.com/TranscodeGroup/maintain-vben-admin仓库存在对应的版本tag
77
# 确认 https://xn.transcodegroup.cn:8590/buildConfiguration/MaintainVbenAdmin_Release?mode=builds 已经打包出附件
88

9-
# 下载tag版本到本地, 并解压到版本对应的文件夹
9+
# 下载tag版本到默认目录, 并解压到版本对应的文件夹
1010
/home/docker/projects/distar-beta-depoly.sh --tag=v1.15.1
11+
12+
# 下载tag版本到当前目录
13+
/home/docker/projects/distar-beta-depoly.sh --tag=v1.15.1 --dir=.
14+
15+
# 下载tag版本到/data/nginx/html目录
16+
/home/docker/projects/distar-beta-depoly.sh --tag=v1.15.1 --dir=/data/nginx/html
1117
```

projects/distar-beta-deploy.sh

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,57 @@
11
#!/bin/bash
22
set -e
3-
__dirname__=$(dirname "$0")
3+
__dirname__=$(realpath "$(dirname "$0")")
44

55
BUILD_NAME="MaintainVbenAdmin_Release"
66
CONFIG_DIR="$__dirname__/distar"
7-
WORK_DIR="/data/nginx/html/track/beta"
8-
9-
# 创建并切换到工作目录
10-
[ -d "$WORK_DIR" ] || mkdir -p "$WORK_DIR" || (echo "创建工作目录失败" && exit 1)
11-
cd "$WORK_DIR"
12-
13-
# 检查参数是否提供
14-
if [ -z "$1" ]; then
15-
echo "使用方式: $0 --tag=版本号"
16-
exit 1
17-
fi
18-
19-
# 解析参数
20-
for arg in "$@"
21-
do
22-
case $arg in
7+
DOWNLOAD_SCRIPT="$__dirname__"/teamcity-download-artifact.sh
8+
DEPLOY_DIR="${DEPLOY_DIR:-/data/nginx/html/track/beta}"
9+
10+
print_help() {
11+
local bin_name=$(basename "$0")
12+
echo
13+
echo "部署 distar beta版"
14+
echo
15+
echo "Usage: $bin_name --tag=<tag> [--dir=<dir>]"
16+
echo
17+
echo "--tag: 标签名, 必填"
18+
echo "--deploy-dir: 部署目录, 默认为 /data/nginx/html/track/beta"
19+
echo
20+
echo "示例:"
21+
echo
22+
echo "$bin_name --tag=v1.14.0"
23+
echo
24+
echo "$bin_name --tag=v1.14.0 --dir=/data/nginx/html/track/test"
25+
echo
26+
}
27+
28+
while [ $# -gt 0 ]; do
29+
case "$1" in
2330
--tag=*)
24-
version="${arg#*=}"
25-
shift # 移除已处理的参数
26-
;;
31+
version="${1#*=}"
32+
;;
33+
--dir=*)
34+
DEPLOY_DIR="${1#*=}"
35+
;;
2736
*)
28-
echo "未知参数: $arg"
29-
exit 1
30-
;;
37+
print_help
38+
exit 1
39+
;;
3140
esac
41+
shift
3242
done
3343

3444
# 检查版本号是否为空
3545
if [ -z "$version" ]; then
3646
echo "版本号不能为空"
47+
print_help
3748
exit 1
3849
fi
3950

51+
# 创建并切换到部署目录
52+
[ -d "$DEPLOY_DIR" ] || mkdir -p "$DEPLOY_DIR" || (echo "创建部署目录失败" && exit 1)
53+
cd "$DEPLOY_DIR"
54+
4055
# 替换点号并生成目标目录
4156
target_dir="${version//./}"
4257

@@ -53,9 +68,9 @@ fi
5368
if [ "$confirm" == "y" ]; then
5469
echo "开始下载压缩文件 $zip_file ..."
5570
if [ "$version" == "latest" ]; then
56-
"$__dirname__"/teamcity-download-artifact.sh --build=$BUILD_NAME
71+
"$DOWNLOAD_SCRIPT" --build=$BUILD_NAME
5772
else
58-
"$__dirname__"/teamcity-download-artifact.sh --build=$BUILD_NAME --tag="$version"
73+
"$DOWNLOAD_SCRIPT" --build=$BUILD_NAME --tag="$version"
5974
fi
6075

6176
# 再次检查压缩文件是否存在
@@ -116,8 +131,9 @@ OLD_DIV='数字交通云平台'
116131
NEW_DIV='ดูแลการเดินรถของคุ'
117132

118133
# 使用sed命令进行文本替换
119-
sed -i "s|$OLD_TITLE|$NEW_TITLE|g" "$html_file"
120-
sed -i "s|$OLD_DIV|$NEW_DIV|g" "$html_file"
134+
sed -i.bak "s|$OLD_TITLE|$NEW_TITLE|g" "$html_file"
135+
sed -i.bak "s|$OLD_DIV|$NEW_DIV|g" "$html_file"
136+
rm "$html_file".bak
121137

122138
echo "替换完成:$html_file 中的 '工物员' 已被替换为 'DiStarGPS ดูแลการเดินรถของคุณ'"
123139

0 commit comments

Comments
 (0)