Summer-PHP-Deploy
起因
某种原因, 不能使用Jenkins, 于是用PHP写了一个自动部署脚本
项目介绍
- 用PHP写的部署脚本
- 可配置源代码目录, 目标目录, 缓存目录(用来部署后删除), 忽略目录/文件(他们在本地的变化不会被部署)
- 支持gitlab hook, 可配置版本库和分支
- 支持一个push event, 同时往多个目录部署
- 支持手动在命令行触发
- 支持网页界面操作
软件架构
准备
- 目录A, 用来存放git分支
- 目录B, 运行网站的代码目录
- 目录C, 部署用的脚本目录, C里边的脚本用来把A里边的代码更新同步到B里边
- gitlab, 添加push hook, hook中指定的url可以执行C中的代码
文件说明:
文件名 | 作用 |
---|---|
index_cli.php | 入口1: 命令行部署 |
index_webhook.php | 入口2: gitlab push hook触发的部署 |
index_webui.php | 入口3: 图形化界面进行部署 |
Tool.php | 工具类, 用来拉取最新代码, 找出差异, 同步代码到目标目录 |
msg.log | 用来存放部署过程中的输出或错误信息 |
scripts/ | 存放不同项目的部署脚本 |
目录C中的脚本使用举例:
- 如果存在 scripts/dev.php, 该脚本是为了把develop分支的代码部署到dev环境, 那么可以这样执行部署命令: php index_cli.php -p=dev
- 同样, 如果存在 scripts/pro.php, 该脚本是为了把master分支的代码部署到pro环境, 那么可以这样执行部署命令: php index_cli.php -p=pro
- 如果要部署指定某两次commit的变化 php index_cli.php -p=dev -v=1234567..7654321
命令参数说明:
- 命令 "index_cli.php -p=dev" 是指index_cli.php 调用scripts/dev.php 进行部署操作
- scripts/dev.php里定义了部署用的路径配置信息, 自己写部署脚本时请参考dev.php中的写法
项目地址
待开发功能
- 部署前增量备份
- 增量回退
- SQL部署
- 机器重启
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。