适配部署压缩包目录结构
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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` 和 `._*` 不会再被误判为有效发布产物
|
||||
- 正常部署链路仍然通过
|
||||
Reference in New Issue
Block a user