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
待開發功能