gitee PHP 自动化布署

项目初期使用 FTP 上传,后期 Jenkins 等自动化布署工具。这里介绍使用 码云 WebHooks 方式自动化布署。

0、本文以 centos 8 为例

1、安装 git及设置用户

yum install git -y
groupadd git
adduser git -g git
vi /etc/passwd
#要设置 /bin/git-shell,即禁止登录。

如果设置为 /sbin/nologin ,将造成 无法克隆。
如果设置为 /bin/bash ,将允许登录shell。

2、设置布署密钥

ssh-keygen -t rsa -C "test@163.com"

默认存储在 /root/.ssh/id_rsa

查看公钥

cat ~/.ssh/id_rsa.pub

复制它到,码云项目,部署公钥管理中。(貌似,文件删除时不能同步
或者,添加到个人中心,设置,SSH公钥中。(这会允许在布署服务器上提交

验证是否成功

ssh -T git@gitee.com

3、复制这些密钥并更改用户组

cp /root/.ssh/* /home/git/.ssh/
cp /root/.ssh/* /home/www/.ssh/

#如果目标目录不存在,你需要手动创建它。

chown -R git.git /home/git/.ssh
chown -R www.www /home/www/.ssh

4、设置钩子
在码云项目管理中,WebHooks,添加一个钩子。
URL 地址,设置项目外网可访问地址,如 http://test.com/pull.php
密码,选择签名密钥,随机生成些字符,填写上面。并记下。
事件,选择 Push 即可。
并勾选下面的“激活”。

5、克隆待布署的项目
克隆项目到 web 目录

git clone git@gitee.com:test/test.git test
cd test

#查看所有分支
git branch -a

#选择要布署的分支
git checkout dev

#修改用户组
chown -R www.www *

6、布署脚本
修改 pull.php 文件,并上传到 web 目录(可外网访问)

$branch = 'dev'; // 设置分支
$maxLogNum = 10; // 设置日志最大文件数
$sign = '你的密钥'; // 密钥
$syncPath = '/www/wwwroot/test'; // 同步目录

7、测试拉取
在 Gitee 项目管理中,WebHooks 处,测试发起拉取请求,至此完毕。

或者,提交代码到版本库。
拉取后,/version.txt 记录最近更新时间,及最后写入日志序号。
/version_1.log 查看日志。

Gitee PHP 自动布署脚本

相关:

Gitee PHP WebHook 签名密钥方式验签代码