自动化 Git 项目部署技能。支持从私有 Git 仓库拉取代码、构建打包、SSH 部署到 Linux 服务器。
适用场景:
方式 A:HTTP 认证
bash
# 配置 Git 凭据
git config --global credential.helper store
方式 B:SSH Key(推荐)
bash
# 生成 SSH Key
ssh-keygen -t ed25519 -C "openclaw-deploy" -f ~/.ssh/openclaw_deploy
# 将公钥添加到 Git 服务器
cat ~/.ssh/openclaw_deploy.pub
bash
# 生成部署 SSH Key(如果复用上面的可以跳过)
ssh-keygen -t ed25519 -C "server-deploy" -f ~/.ssh/server_deploy
# 将公钥添加到服务器
ssh-copy-id -i ~/.ssh/server_deploy.pub user@server_ip
bash
# 测试 Git 连接
git ls-remote http://192.168.1.169:8015/peninsula/points
# 测试服务器连接
ssh -i ~/.ssh/server_deploy user@server_ip "echo connected"
text
1. 接收需求 → 2. 拉取代码 → 3. 开发修改 → 4. Git 提交
→ 5. 构建打包 → 6. SSH 传输 → 7. 服务器部署 → 8. 服务重启 → 9. 健康检查
bash
cd /workspace/points
git pull origin main
根据用户需求修改代码文件。
bash
git add .
git commit -m "feat: [需求描述]"
git push origin main
Node.js 部分:
bash
cd /workspace/points
npm install
npm run build
Java 部分:
bash
cd /workspace/points/java-module
mvn clean package -DskipTests
bash
# 创建部署包
tar -czf points-deploy.tar.gz dist/ target/*.jar
bash
scp -i ~/.ssh/server_deploy points-deploy.tar.gz user@server:/tmp/
bash
ssh -i ~/.ssh/server_deploy user@server << 'EOF'
# 备份当前版本
cp -r /www/wwwroot/points /www/backup/points_$(date +%Y%m%d_%H%M%S)
# 解压新代码
tar -xzf /tmp/points-deploy.tar.gz -C /www/wwwroot/points
# 重启服务(根据实际服务管理方式)
# systemd:
systemctl restart points-service
# 或宝塔面板:
/etc/init.d/points restart
# 或 PM2(Node.js):
pm2 restart points
# 清理临时文件
rm /tmp/points-deploy.tar.gz
EOF
bash
ssh -i ~/.ssh/server_deploy user@server "curl -s http://localhost:端口/health || exit 1"
在 DEPLOY_CONFIG.md 中配置以下信息:
配置项说明示例git.urlGit 仓库地址http://192.168.1.169:8015/peninsula/points``git.branch默认分支main``server.host服务器 IP192.168.1.100``server.portSSH 端口22``server.userSSH 用户root``server.deployPath部署路径/www/wwwroot/points``project.type项目类型nodejs / java / nodejs+java``project.build.node.buildCmdNode 构建命令npm run build``project.build.java.buildCmdJava 构建命令mvn clean package``project.deploy.restartCmd重启命令pm2 restart points
chmod 600 ~/.ssh/server_deploy)chmod 600用户:帮我加个积分查询接口
text
1. 开发修改代码
2. 提交 Git
3. 自动构建部署
4. 回复用户:已完成部署 ✅
用户:实现一个积分排行榜功能
text
1. 开发修改代码
2. 提交到 feature 分支
3. 回复用户:开发完成,请 Review
4. 用户确认后合并到 main 并部署
bash
# 获取最新备份版本
BACKUP=$(ssh user@server "ls -t /www/backup/ | head -1")
# 恢复备份
ssh user@server << EOF
systemctl stop points-service
rm -rf /www/wwwroot/points/*
cp -r /www/backup/$BACKUP/* /www/wwwroot/points/
systemctl start points-service
EOF
版本:1.0.0
最后更新:2026-03-26