gitlab-runner使用:
安装/部署:
https://www.cnblogs.com/scajy/p/15661187.html
https://juejin.cn/post/6844903937091321864
一个基于php的hook.php
<?php
set_time_limit(90);
//这一行将当前请求的 $_SERVER 变量的内容以 JSON 格式写入到 /tmp/hook.out 文件中,可能是为了调试或者记录请求的信息。
file_put_contents('/tmp/hook.out', json_encode($_SERVER));
//这里定义了一组被允许的 Git 仓库路径,使用 GitLab Token 作为索引。如果请求中的 Token 不在这个列表中,脚本会提前结束。
$allowedTokens = [
'pj1' => '/var/www/git/branches/pj1/dev',
'pj2' => '/var/www/git/branches/pj2t/dev',
];
$token = isset($_SERVER['X-Gitlab-Token']) ? $_SERVER['X-Gitlab-Token'] : '';
if (!isset($allowedTokens[$token])) {
return;
}
//执行 Git Pull 命令
$cmd = "cd $allowedTokens[$token] && git pull";
var_dump(shell_exec($cmd));
上面这个只是一个基于gitlab-runner的php脚本程序,其实还有更灵活的方法实现,后面再整理一个
