node-link/cakephp-git-deploy

插件,用于操作 CakePHP 3 的自动 git-pull 服务器(使用 GitHub、GitLab 和 Bitbucket 的 WebHook)

v0.1.0 2018-10-09 10:01 UTC

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/.envconfig/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”以保存您的设置,脚本应该开始工作。

Example screenshot showing GitHub webhook settings

GitLab

在您的仓库中,转到设置 → 集成,并使用以下设置

  • URL:https://example.com/git-deploy
  • 密钥令牌:在 config/.env 中的 GIT_DEPLOY_TOKEN 的值
  • 触发器:☑️ 推送事件
  • 启用 SSL 验证:☑️(仅当使用 SSL 时,请参阅 GitLab 的文档 获取更多详细信息)

单击“添加 Webhook”以保存您的设置,脚本应该开始工作。

Example screenshot showing GitLab webhook settings

Bitbucket

在您的仓库中,转到设置 → Webhooks → 添加 Webhook,并使用以下设置

单击“保存”以保存您的设置,脚本应该开始工作。

Example screenshot showing Bitbucket webhook settings

故障排除

如果执行不成功,请参阅 logs/error.loglogs/debug.log

在某些情况下,执行时的错误详情可能会列出。

权限

当它工作不正常时,在许多情况下,存在权限问题。

请设置以便 Web 服务器用户(wwwwww-dataapache 等)可以 git pullcomposer install

建议通过将仓库组更改为 Web 服务器用户组并授予组写权限来实现这一点

  1. 打开包含服务器上仓库的目录的终端。
  2. 运行 sudo chown -R yourusername:webserverusername project-dir/ 以更改仓库的组。
  3. 运行 sudo chmod -R g+s project-dir/ 以使组分配对新文件/目录继承。
  4. 运行 sudo chmod -R 775 project-dir/ 以设置所有者和组的读写权限。

SSH

生成SSH密钥并将其添加到您的账户,以便无需密码即可运行git pull。

问题报告

如果您在使用GitDeploy插件时遇到问题,请向GitHub提交一个pull request或创建一个问题。

此外,如果您能帮助更新README.md文件,我将不胜感激。