117 lines
3.3 KiB
Bash
Executable File
117 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# NAC编译器工具链服务器部署脚本
|
|
# 版本: v1.0.0
|
|
# 日期: 2026-02-14
|
|
|
|
set -e
|
|
|
|
# 服务器配置
|
|
SERVER_IP="103.96.148.7"
|
|
SERVER_PORT="22000"
|
|
SERVER_USER="root"
|
|
SERVER_PASS="XKUigTFMJXhH"
|
|
DEPLOY_DIR="/root/nac_compiler_toolchain"
|
|
|
|
echo "========================================="
|
|
echo "NAC编译器工具链部署脚本 v1.0.0"
|
|
echo "========================================="
|
|
echo ""
|
|
|
|
# 1. 创建部署目录
|
|
echo "[1/6] 创建服务器部署目录..."
|
|
sshpass -p "$SERVER_PASS" ssh -p $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
$SERVER_USER@$SERVER_IP "mkdir -p $DEPLOY_DIR"
|
|
|
|
# 2. 上传源代码包
|
|
echo "[2/6] 上传源代码包..."
|
|
sshpass -p "$SERVER_PASS" scp -P $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
NAC_Compiler_Toolchain_Complete_v1.0.0.tar.gz \
|
|
$SERVER_USER@$SERVER_IP:$DEPLOY_DIR/
|
|
|
|
# 3. 上传编译产物包
|
|
echo "[3/6] 上传编译产物包..."
|
|
sshpass -p "$SERVER_PASS" scp -P $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
NAC_Compiler_Toolchain_Binaries_v1.0.0.tar.gz \
|
|
$SERVER_USER@$SERVER_IP:$DEPLOY_DIR/
|
|
|
|
# 4. 上传交付报告
|
|
echo "[4/6] 上传交付报告..."
|
|
sshpass -p "$SERVER_PASS" scp -P $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
/home/ubuntu/NAC_Compiler_Toolchain_Complete_Delivery_Report_v1.0.md \
|
|
$SERVER_USER@$SERVER_IP:$DEPLOY_DIR/
|
|
|
|
# 5. 解压并安装
|
|
echo "[5/6] 在服务器上解压并安装..."
|
|
sshpass -p "$SERVER_PASS" ssh -p $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
$SERVER_USER@$SERVER_IP << 'ENDSSH'
|
|
cd /root/nac_compiler_toolchain
|
|
|
|
# 解压二进制包
|
|
tar -xzf NAC_Compiler_Toolchain_Binaries_v1.0.0.tar.gz
|
|
|
|
# 安装到系统
|
|
cp nac_binaries/cnnl /usr/local/bin/
|
|
cp nac_binaries/cargo-constitution /usr/local/bin/
|
|
chmod +x /usr/local/bin/cnnl
|
|
chmod +x /usr/local/bin/cargo-constitution
|
|
|
|
# 验证安装
|
|
echo "验证CNNL编译器..."
|
|
cnnl --help || echo "CNNL编译器安装失败"
|
|
|
|
echo "验证cargo-constitution..."
|
|
cargo-constitution --help || echo "cargo-constitution安装失败"
|
|
|
|
echo "安装完成!"
|
|
ENDSSH
|
|
|
|
# 6. 运行测试
|
|
echo "[6/6] 在服务器上运行测试..."
|
|
sshpass -p "$SERVER_PASS" ssh -p $SERVER_PORT -o StrictHostKeyChecking=no \
|
|
$SERVER_USER@$SERVER_IP << 'ENDSSH'
|
|
cd /root/nac_compiler_toolchain
|
|
|
|
# 解压源代码包
|
|
tar -xzf NAC_Compiler_Toolchain_Complete_v1.0.0.tar.gz
|
|
|
|
# 测试CNNL编译器
|
|
echo "测试CNNL编译器..."
|
|
cd cnnl-compiler
|
|
cnnl examples/xtzh_gold_coverage.cnnl --output /tmp/test_output
|
|
|
|
# 检查输出
|
|
if [ -f /tmp/test_output/constitutional.bin ]; then
|
|
echo "✅ CNNL编译器测试通过"
|
|
ls -lh /tmp/test_output/
|
|
else
|
|
echo "❌ CNNL编译器测试失败"
|
|
fi
|
|
|
|
cd ..
|
|
|
|
# 测试cargo-constitution
|
|
echo "测试cargo-constitution..."
|
|
cd cargo-constitution
|
|
cargo-constitution . || echo "cargo-constitution测试完成"
|
|
|
|
cd ..
|
|
|
|
echo "所有测试完成!"
|
|
ENDSSH
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo "部署完成!"
|
|
echo "========================================="
|
|
echo ""
|
|
echo "部署信息:"
|
|
echo " 服务器: $SERVER_IP:$SERVER_PORT"
|
|
echo " 部署目录: $DEPLOY_DIR"
|
|
echo " CNNL编译器: /usr/local/bin/cnnl"
|
|
echo " cargo-constitution: /usr/local/bin/cargo-constitution"
|
|
echo ""
|
|
echo "验证命令:"
|
|
echo " ssh -p $SERVER_PORT $SERVER_USER@$SERVER_IP 'cnnl --help'"
|
|
echo " ssh -p $SERVER_PORT $SERVER_USER@$SERVER_IP 'cargo-constitution --help'"
|
|
echo ""
|