GFramework/scripts/validate-packed-modules.sh
gewuyou 30ddb841a9 fix(release): 前移发布包清单校验
- 修复 benchmark 项目误入发布面的风险,明确 GFramework.Cqrs.Benchmarks 保持不可打包。

- 新增共享 packed modules 校验脚本,并让 publish 与 CI 工作流复用同一份发布包名单规则。

- 更新 CQRS active tracking 与 trace,记录本轮发布校验前移的恢复点与验证结果。
2026-05-06 21:12:42 +08:00

52 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Copyright (c) 2025-2026 GeWuYou
# SPDX-License-Identifier: Apache-2.0
set -euo pipefail
package_dir="${1:-./packages}"
if [ ! -d "$package_dir" ]; then
echo "Package directory not found: $package_dir" >&2
exit 1
fi
expected_packages=(
"GeWuYou.GFramework"
"GeWuYou.GFramework.Core"
"GeWuYou.GFramework.Core.Abstractions"
"GeWuYou.GFramework.Core.SourceGenerators"
"GeWuYou.GFramework.Cqrs"
"GeWuYou.GFramework.Cqrs.Abstractions"
"GeWuYou.GFramework.Cqrs.SourceGenerators"
"GeWuYou.GFramework.Ecs.Arch"
"GeWuYou.GFramework.Ecs.Arch.Abstractions"
"GeWuYou.GFramework.Game"
"GeWuYou.GFramework.Game.Abstractions"
"GeWuYou.GFramework.Game.SourceGenerators"
"GeWuYou.GFramework.Godot"
"GeWuYou.GFramework.Godot.SourceGenerators"
)
work_dir="$(mktemp -d)"
trap 'rm -rf "$work_dir"' EXIT
expected_file="$work_dir/expected-packages.txt"
actual_file="$work_dir/actual-packages.txt"
mapfile -t actual_packages < <(
find "$package_dir" -maxdepth 1 -type f -name '*.nupkg' -printf '%f\n' \
| sed -E 's/\.[0-9][0-9A-Za-z.-]*\.nupkg$//' \
| sort -u
)
printf '%s\n' "${expected_packages[@]}" | sort > "$expected_file"
printf '%s\n' "${actual_packages[@]}" > "$actual_file"
echo "Expected packages:"
cat "$expected_file"
echo "Actual packages:"
cat "$actual_file"
diff -u "$expected_file" "$actual_file"