Complete Cocos Creator port with level bundles, themes, and tooling.
Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
70
tools/package-cdn-upload.sh
Normal file
70
tools/package-cdn-upload.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
# 生成 OSS 上传清单(运行时包 build/mstest5 与本地 static/unity 相同,不再复制 cdn-upload)
|
||||
#
|
||||
# bash tools/package-cdn-upload.sh
|
||||
# bash tools/package-cdn-upload.sh --cdn-base https://oss.example.com/game
|
||||
# bash tools/package-cdn-upload.sh --zip
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
BUILD_DIR="$PROJECT_DIR/build/web-desktop"
|
||||
PACK_DIR="$PROJECT_DIR/build/mstest5"
|
||||
DEPLOY_DIR="$PROJECT_DIR/build/deploy"
|
||||
UNITY_REF="${UNITY_REF:-$HOME/tfrh/竞赛/mstest5}"
|
||||
CDN_BASE=""
|
||||
MAKE_ZIP=0
|
||||
SKIP_BUILD=0
|
||||
SKIP_PACK=0
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
用法: package-cdn-upload.sh [options]
|
||||
|
||||
1. package-for-cdn → build/mstest5/(运行时包)
|
||||
2. write-deploy-manifest → build/deploy/(清单,不复制包)
|
||||
|
||||
运行时包 = 本地 static/unity = OSS unitycdndir(仅 URL 不同)
|
||||
|
||||
选项:
|
||||
--build DIR Cocos 构建目录
|
||||
--pack DIR 运行时包目录(默认 build/mstest5)
|
||||
--cdn-base URL OSS 根地址
|
||||
--zip 生成 build/mstest5-runtime.zip
|
||||
--skip-build 跳过构建检查
|
||||
--skip-pack 跳过打包,仅生成清单
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--build) BUILD_DIR="$2"; shift 2 ;;
|
||||
--pack) PACK_DIR="$2"; shift 2 ;;
|
||||
--cdn-base) CDN_BASE="$2"; shift 2 ;;
|
||||
--zip) MAKE_ZIP=1; shift ;;
|
||||
--skip-build) SKIP_BUILD=1; shift ;;
|
||||
--skip-pack) SKIP_PACK=1; shift ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
*) echo "未知参数: $1" >&2; usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$SKIP_BUILD" -eq 0 ]]; then
|
||||
bash "$SCRIPT_DIR/verify-split-build.sh" "$BUILD_DIR"
|
||||
fi
|
||||
|
||||
if [[ "$SKIP_PACK" -eq 0 ]]; then
|
||||
bash "$SCRIPT_DIR/package-for-project.sh" --build "$BUILD_DIR" --out "$PACK_DIR" \
|
||||
${CDN_BASE:+--cdn-base "$CDN_BASE"} \
|
||||
${MAKE_ZIP:+--zip}
|
||||
else
|
||||
MANIFEST_ARGS=("$PACK_DIR" --manifest-dir "$DEPLOY_DIR")
|
||||
[[ -n "$CDN_BASE" ]] && MANIFEST_ARGS+=(--cdn-base "$CDN_BASE")
|
||||
[[ "$MAKE_ZIP" -eq 1 ]] && MANIFEST_ARGS+=(--zip)
|
||||
node "$SCRIPT_DIR/write-deploy-manifest.js" "${MANIFEST_ARGS[@]}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "完成。"
|
||||
echo " 运行时包(本地=CDN): $PACK_DIR"
|
||||
echo " 上传清单: $DEPLOY_DIR/UPLOAD-MANIFEST.txt"
|
||||
Reference in New Issue
Block a user