node-link / cakephp-git-deploy
插件,用于操作 CakePHP 3 的自动 git-pull 服务器(使用 GitHub、GitLab 和 Bitbucket 的 WebHook)
Requires
- cakephp/cakephp: ^3.5
Requires (Dev)
- phpunit/phpunit: ^5.7.14|^6.0
This package is auto-updated.
Last update: 2024-09-09 23:53:07 UTC
README
插件,用于操作 CakePHP 3 的自动 git-pull 服务器(使用 GitHub、GitLab 和 Bitbucket 的 WebHook)
要求
- CakePHP 3.5 或更高版本
- PHP 5.6 或更高版本
安装
1. 安装插件
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require node-link/cakephp-git-deploy
2. 加载插件
请按照以下方式手动加载插件:
<?php // In src/Application.php. Requires at least 3.6.0 use Cake\Http\BaseApplication; class Application extends BaseApplication { public function bootstrap() { parent::bootstrap(); // Load the plugin $this->addPlugin('NodeLink/GitDeploy'); } }
在 3.6.0 之前,您应该使用 Plugin::load()
<?php // In config/bootstrap.php use Cake\Core\Plugin; Plugin::load('NodeLink/GitDeploy', ['bootstrap' => true, 'routes' => true]);
或者,使用 bin/cake
按以下方式加载插件:
bin/cake plugin load -b -r NodeLink/GitDeploy
配置
编辑 config/.env
或 config/app.php
。
完整的默认配置如下
<?php return [ 'GitDeploy' => [ 'enable' => filter_var(env('GIT_DEPLOY_ENABLE', false), FILTER_VALIDATE_BOOLEAN), 'token' => env('GIT_DEPLOY_TOKEN', 'secret'), 'branch' => env('GIT_DEPLOY_BRANCH', 'master'), 'git_path' => env('GIT_DEPLOY_GIT_PATH', '/usr/bin/git'), 'composer_path' => env('GIT_DEPLOY_COMPOSER_PATH', '/usr/local/bin/composer') ], ];
建议将以下项添加到 config/.env
。
export GIT_DEPLOY_ENABLE="true" export GIT_DEPLOY_TOKEN="__TOKEN__" export GIT_DEPLOY_BRANCH="master" export GIT_DEPLOY_GIT_PATH="/usr/bin/git" export GIT_DEPLOY_COMPOSER_PATH="/usr/local/bin/composer" export COMPOSER_HOME="/var/www"
除非正确设置了 COMPOSER_HOME
,否则可能无法正常工作。
设置
GitHub
在您的仓库中,转到设置 → Webhooks → 添加 Webhook,并使用以下设置
- 有效载荷 URL:https://example.com/git-deploy
- 内容类型:application/json
- 密钥:在
config/.env
中的GIT_DEPLOY_TOKEN
的值 - 您想触发哪些事件?🔘 仅推送事件
- 启用:☑️
单击“添加 Webhook”以保存您的设置,脚本应该开始工作。
GitLab
在您的仓库中,转到设置 → 集成,并使用以下设置
- URL:https://example.com/git-deploy
- 密钥令牌:在
config/.env
中的GIT_DEPLOY_TOKEN
的值 - 触发器:☑️ 推送事件
- 启用 SSL 验证:☑️(仅当使用 SSL 时,请参阅 GitLab 的文档 获取更多详细信息)
单击“添加 Webhook”以保存您的设置,脚本应该开始工作。
Bitbucket
在您的仓库中,转到设置 → Webhooks → 添加 Webhook,并使用以下设置
- 标题:Git Deploy
- URL:https://example.com/git-deploy?token=
GIT_DEPLOY_TOKEN
- 启用:☑️
- SSL / TLS:⬜ 跳过证书验证(仅当使用 SSL 时,请参阅 Bitbucket 的文档 获取更多详细信息)
- 触发器:🔘 仓库推送
单击“保存”以保存您的设置,脚本应该开始工作。
故障排除
如果执行不成功,请参阅 logs/error.log
和 logs/debug.log
。
在某些情况下,执行时的错误详情可能会列出。
权限
当它工作不正常时,在许多情况下,存在权限问题。
请设置以便 Web 服务器用户(www
、www-data
、apache
等)可以 git pull
和 composer install
。
建议通过将仓库组更改为 Web 服务器用户组并授予组写权限来实现这一点
- 打开包含服务器上仓库的目录的终端。
- 运行
sudo chown -R yourusername:webserverusername project-dir/
以更改仓库的组。 - 运行
sudo chmod -R g+s project-dir/
以使组分配对新文件/目录继承。 - 运行
sudo chmod -R 775 project-dir/
以设置所有者和组的读写权限。
SSH
生成SSH密钥并将其添加到您的账户,以便无需密码即可运行git pull。
问题报告
如果您在使用GitDeploy插件时遇到问题,请向GitHub提交一个pull request或创建一个问题。
此外,如果您能帮助更新README.md
文件,我将不胜感激。