Summer-PHP-Deploy
原由
某种缘由, 不能使用Jenkins, 因而用PHP写了一个自动部署脚本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中的写法
项目地址
码云 Summer-PHP-Deploygit
待开发功能