代码上传


需求分析

  • 多项目统一管理
  • 减少服务器对具体开发语言的环境配置依赖
  • 增加项目发布的扩展性

软件设计

数据字典

  • 代码上传表
字段 注释
git_name git项目
commit 简短提交
state_debug 是否上传测试服
state_online 是否上传正式服

功能模块

  • 构建
// 拉取代码
execClone();
// 更新代码
execPull();
// 提交日志
execLog();
// 版本文件
execShow();
// 压缩文件
execTar();
// 上传文件
execScp();
// 更新数据库
updateDB();
  • 部署
// 上传并执行脚本
execDeploy();

编码

git pull
git log --pretty=%h
git show --name-only --pretty= b98c7b0
composer update
tar -rf "nginx.2021-06-21-011358.tar" "."
scp -P 1022 "nginx.2021-06-21-011358.tar" "root@localhost:/tmp"
scp -P 1022 "nginx.2021-06-21-011358.tar.sh" "root@localhost:/tmp"
ssh -p 1022 "root@localhost" "sh /tmp/nginx.2021-06-21-011358.tar.sh"