适配部署压缩包目录结构

This commit is contained in:
wkc
2026-04-01 11:00:36 +08:00
parent 9b35d04e50
commit f874e2d942
3 changed files with 47 additions and 11 deletions

View File

@@ -78,26 +78,26 @@ extract_release_package() {
assert_single_jar() {
search_dir="$1"
count=$(find "$search_dir" -type f -name '*.jar' | wc -l | tr -d ' ')
count=$(find "$search_dir" -type f -name '*.jar' ! -path '*/__MACOSX/*' ! -name '._*' | wc -l | tr -d ' ')
if [ "$count" -ne 1 ]; then
log_error "后端 jar 数量不正确,期望 1 个,实际 $count"
exit 1
fi
find "$search_dir" -type f -name '*.jar' | head -n 1
find "$search_dir" -type f -name '*.jar' ! -path '*/__MACOSX/*' ! -name '._*' | head -n 1
}
assert_single_dist_zip() {
search_dir="$1"
count=$(find "$search_dir" -type f -name 'dist.zip' | wc -l | tr -d ' ')
count=$(find "$search_dir" -type f -name 'dist.zip' ! -path '*/__MACOSX/*' ! -name '._*' | wc -l | tr -d ' ')
if [ "$count" -ne 1 ]; then
log_error "前端 dist.zip 数量不正确,期望 1 个,实际 $count"
exit 1
fi
find "$search_dir" -type f -name 'dist.zip' | head -n 1
find "$search_dir" -type f -name 'dist.zip' ! -path '*/__MACOSX/*' ! -name '._*' | head -n 1
}
backup_backend_jar() {

View File

@@ -55,18 +55,21 @@ EOF
create_release_zip() {
release_dir="$1"
release_zip_name="$2"
jar_name="$3"
mkdir -p "$release_dir/package/frontend_payload/dist"
printf 'new-jar\n' > "$release_dir/package/$jar_name"
mkdir -p "$release_dir/package/deploy" "$release_dir/package/__MACOSX/deploy"
mkdir -p "$release_dir/package/frontend_payload/dist" "$release_dir/package/frontend_payload/__MACOSX/dist"
printf 'new-jar\n' > "$release_dir/package/deploy/ruoyi-admin.jar"
printf 'macos-meta\n' > "$release_dir/package/__MACOSX/deploy/._ruoyi-admin.jar"
printf '<html>new</html>\n' > "$release_dir/package/frontend_payload/dist/index.html"
printf 'macos-meta\n' > "$release_dir/package/frontend_payload/__MACOSX/dist/._index.html"
(
cd "$release_dir/package/frontend_payload"
zip -qr "$release_dir/package/dist.zip" dist
zip -qr "$release_dir/package/dist.zip" dist __MACOSX
)
mv "$release_dir/package/dist.zip" "$release_dir/package/deploy/dist.zip"
(
cd "$release_dir/package"
zip -qr "$release_dir/$release_zip_name" "$jar_name" dist.zip
zip -qr "$release_dir/$release_zip_name" deploy __MACOSX
)
}
@@ -91,7 +94,7 @@ prepare_release_dir() {
printf '<html>old</html>\n' > "$release_dir/frontend/dist/index.html"
create_fake_java "$release_dir/fake-java-bin/java"
create_release_zip "$release_dir" "loan-pricing-release.zip" "app.jar"
create_release_zip "$release_dir" "deploy.zip"
cp "$SCRIPT_UNDER_TEST" "$release_dir/deploy_from_package.sh"
perl -0pi -e "s#JAVA_BIN=\"/home/webapp/env/java/bin/java\"#JAVA_BIN=\"$release_dir/fake-java-bin/java\"#" \
"$release_dir/deploy_from_package.sh"
@@ -151,7 +154,7 @@ test_multiple_release_zip_should_fail() {
trap 'cleanup_release_dir "$release_dir"' EXIT INT TERM
prepare_release_dir "$release_dir" "$backend_port"
cp "$release_dir/loan-pricing-release.zip" "$release_dir/loan-pricing-release-copy.zip"
cp "$release_dir/deploy.zip" "$release_dir/deploy-copy.zip"
if (
cd "$release_dir"

View File

@@ -0,0 +1,33 @@
# 生产一键部署脚本参考 deploy.zip 调整实施记录
## 参考压缩包
- 参考文件:`deploy/deploy.zip`
- 已核对压缩包结构:
- `deploy/ruoyi-admin.jar`
- `deploy/dist.zip`
- `__MACOSX/deploy/._ruoyi-admin.jar`
## 问题原因
- 原脚本按 `find ... -name '*.jar'` 统计后端产物
- 参考压缩包中包含 `__MACOSX/deploy/._ruoyi-admin.jar`
- 该文件会被误算成第二个 `jar`,导致脚本报错“后端 jar 数量不正确,期望 1 个,实际 2 个”
## 修改内容
- 更新 `bin/prod/deploy_from_package.sh`
- 在后端 `jar` 和前端 `dist.zip` 搜索时忽略:
- `__MACOSX` 目录下文件
- `._*` 资源分叉文件
- 更新 `bin/prod/deploy_from_package_test.sh`
- 自测发布包结构改为贴近真实 `deploy/deploy.zip`
- 外层为 `deploy/ruoyi-admin.jar`
- 外层为 `deploy/dist.zip`
-`__MACOSX` 资源文件
- 内层 `dist.zip` 也带 `dist/``__MACOSX/`
## 验证结果
- 已执行 `sh -n bin/prod/deploy_from_package.sh`
- 已执行 `sh bin/prod/deploy_from_package_test.sh`
- 自测结果确认:
- 脚本可正确识别参考压缩包结构
- `__MACOSX``._*` 不会再被误判为有效发布产物
- 正常部署链路仍然通过