122 lines
2.6 KiB
Bash
122 lines
2.6 KiB
Bash
#!/bin/bash
|
||
|
||
# NAC公链独立部署脚本
|
||
# 版本: 1.0.0
|
||
# 日期: 2026-02-04
|
||
|
||
set -e
|
||
|
||
echo "========================================="
|
||
echo "NAC Blockchain 独立部署脚本"
|
||
echo "========================================="
|
||
echo ""
|
||
|
||
# 检查系统要求
|
||
check_requirements() {
|
||
echo "检查系统要求..."
|
||
|
||
# 检查Rust
|
||
if ! command -v rustc &> /dev/null; then
|
||
echo "❌ 未安装Rust,正在安装..."
|
||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||
source $HOME/.cargo/env
|
||
else
|
||
echo "✅ Rust已安装: $(rustc --version)"
|
||
fi
|
||
|
||
# 检查Cargo
|
||
if ! command -v cargo &> /dev/null; then
|
||
echo "❌ Cargo未找到"
|
||
exit 1
|
||
else
|
||
echo "✅ Cargo已安装: $(cargo --version)"
|
||
fi
|
||
|
||
echo ""
|
||
}
|
||
|
||
# 编译项目
|
||
build_project() {
|
||
echo "编译NAC公链..."
|
||
cargo build --release
|
||
|
||
if [ $? -eq 0 ]; then
|
||
echo "✅ 编译成功"
|
||
else
|
||
echo "❌ 编译失败"
|
||
exit 1
|
||
fi
|
||
echo ""
|
||
}
|
||
|
||
# 运行测试
|
||
run_tests() {
|
||
echo "运行测试套件..."
|
||
cargo test --release
|
||
|
||
if [ $? -eq 0 ]; then
|
||
echo "✅ 所有测试通过"
|
||
else
|
||
echo "❌ 测试失败"
|
||
exit 1
|
||
fi
|
||
echo ""
|
||
}
|
||
|
||
# 生成文档
|
||
generate_docs() {
|
||
echo "生成项目文档..."
|
||
cargo doc --no-deps
|
||
echo "✅ 文档已生成到 target/doc/"
|
||
echo ""
|
||
}
|
||
|
||
# 打包发布
|
||
package_release() {
|
||
echo "打包发布版本..."
|
||
|
||
VERSION="1.0.0"
|
||
PACKAGE_NAME="nac-blockchain-v${VERSION}"
|
||
|
||
mkdir -p releases/${PACKAGE_NAME}
|
||
|
||
# 复制二进制文件
|
||
if [ -f "target/release/libnvm_l1.rlib" ]; then
|
||
cp target/release/libnvm_l1.rlib releases/${PACKAGE_NAME}/
|
||
fi
|
||
|
||
# 复制源代码
|
||
cp -r src releases/${PACKAGE_NAME}/
|
||
cp Cargo.toml releases/${PACKAGE_NAME}/
|
||
cp README.md releases/${PACKAGE_NAME}/ 2>/dev/null || echo "README.md not found"
|
||
|
||
# 打包
|
||
cd releases
|
||
tar -czf ${PACKAGE_NAME}.tar.gz ${PACKAGE_NAME}/
|
||
cd ..
|
||
|
||
echo "✅ 发布包已生成: releases/${PACKAGE_NAME}.tar.gz"
|
||
echo ""
|
||
}
|
||
|
||
# 主函数
|
||
main() {
|
||
check_requirements
|
||
build_project
|
||
run_tests
|
||
generate_docs
|
||
package_release
|
||
|
||
echo "========================================="
|
||
echo "✅ NAC公链部署完成!"
|
||
echo "========================================="
|
||
echo ""
|
||
echo "下一步:"
|
||
echo "1. 查看文档: target/doc/nvm_l1/index.html"
|
||
echo "2. 发布包位置: releases/"
|
||
echo "3. 运行测试: cargo test"
|
||
echo ""
|
||
}
|
||
|
||
main
|