# Summer-PHP-Deploy **Repository Path**: wangjindm/Summer-PHP-Deploy ## Basic Information - **Project Name**: Summer-PHP-Deploy - **Description**: 命令行代码部署工具:支持按分支和TAG部署,支持增量和全量部署(保留历史版本),支持部署后执行自定义脚本 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2021-10-09 - **Last Updated**: 2021-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Summer-PHP-Deploy ## 项目介绍 - 用PHP写的部署脚本 - 支持在命令行触发 - 支持部署后删除缓存 - 支持指定文件不部署 - 支持增量部署和全量部署 - 全量部署时, 会创建新的目录存放代码, 并更新软连接, 指向新的代码目录 ## 软件架构 ### 准备 - 软连接A, 作为网站代码的跟目录 - 目录B, 部署用的脚本目录, - 全量部署: 每次会全量部署到一个按时间命名的目录, 然后将A指向此目录 - 增量部署: 每次找到最新的更改(增删改), 然后覆盖到A指向的目录 - php version 5.4+ - git 最新版本 - 修改cli.php中的宏定义GIT_BIN, 为当前git的可执行文件绝对路径 ### 核心代码文件 |文件名|作用| |:---|:---| |cli.php| 命令行部署入口文件| |conf|存放配置文件, 每个配置文件要指定git版本库URL, 要忽略的文件, 缓存文件, 部署到的目录, 软连接名 | |Lib|存放工具类: git操作的封装类; 读取文件列表的类| |repo|用来存放git版本库| ### 命令行使用 |命令|解释| |:---|:---| |php cli.php -h| 列出所有可用的部署命令 | |php cli.php -c dev| 使用conf/dev.php 去部署, 将master分支的最新代码, 增量复制到软连接指定的目录中| |php cli.php -c dev -b test| 使用conf/dev.php 去部署, 将test分支的最新代码, 增量复制到软连接指定的目录中| |php cli.php -c dev -a| 使用conf/dev.php 去部署, 将master分支的最新代码, 全量复制到指定目录中, 并将软连接指向到这个目录| |php cli.php -c dev -b test -a| 使用conf/dev.php 去部署, 将test分支的最新代码, 全量复制到指定目录中, 并将软连接指向到这个目录| |php cli.php -c dev -t v1.0| 使用conf/dev.php 去部署, 将Tag v1.0的最新代码, 全量复制到指定目录中, 并将软连接指向到这个目录| ## 待开发功能 - 版本回退 ## 注意 最新版代码中,只支持命令行部署(cli.php); web部署因为安全性没有再继续支持, 还请各位谅解.