dersonsena/yii2-deploy

Yii Framework 2 模块格式的自动部署模块

安装: 91

依赖: 0

建议者: 0

安全: 0

星级: 5

关注者: 3

分支: 1

开放问题: 0

类型:yii2-extension

1.3.3 2017-08-09 12:09 UTC

This package is auto-updated.

Last update: 2024-09-26 13:45:41 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Yii2 Deploy

Yii Framework 2 模块格式的自动部署模块。如果您希望每次在本地开发环境中执行 git push 命令时自动更新远程仓库,请按照以下说明和步骤操作。

Yii2

预置要求

  • 在服务器上安装 Git;
  • 在您的 Web 服务器上启用 PHP 的 shell_exec 函数;

安装说明

推荐通过 composer 安装此扩展。

在终端执行

$ php composer.phar require dersonsena/yii2-deploy "*"

或在您的 composer.json 文件的 require 部分添加以下内容:

"dersonsena/yii2-deploy": "*"

步骤 1 - 注册模块

按照以下示例在配置文件 config/web.php 中注册模块

'modules' => [
    ...
    'deploy' => [
        'class' => 'dersonsena\deploy\DeployModule',
        'token' => '<INSIRA UM TOKEN AQUI>',
    ],
    ...
]

您可以使用一些在线工具生成您的 token。以下是一些网站:

您也可以使用 Yii2 的 yii\base\Security 组件轻松生成 token,如下所示

echo \Yii::$app->security->generateRandomString()

步骤 2 - 进行首次测试

为测试目的,请通过浏览器访问此 URL

http://seudominio.com.br/deploy?t=SEU_TOKEN

模块应“返回”一个包含已执行命令的页面。

步骤 3 - 集成

如果步骤 2 中一切顺利,请按照以下步骤集成您的应用程序

3.1 与 Bitbucket 集成

  1. 导航到您的仓库地址,进入 settings 部分;
  2. 导航到 Integrations >> Webhooks 部分;
  3. 点击 Add Webhook 按钮;
  4. 输入您喜欢的 title
  5. URL 字段中输入: http://seudominio.com.br/deploy?t=SEU_TOKEN
  6. 点击 Save 按钮。

附加信息

日志生成

每次在生产服务器上执行命令时,Yii2-Deploy 都会在目录中生成一个 .txt 文件,其中包含终端输出的日志。

<APP_PATH>/runtime/deploy/20160626143800.txt

重要:只有在您不在开发环境 YII_ENV_DEV 中时才会生成 LOG。

更改分支

如果您想让 git pull 命令使用另一个分支,只需在 config/web.php 中覆盖 branch 属性,如下所示

'modules' => [
    ...
    'deploy' => [
        'class' => 'dersonsena\deploy\DeployModule',
        'token' => '<SEU TOKEN>',
        'branch' => 'meu-branch'
    ],
    ...
]

在开发环境中强制执行命令

默认情况下,Yii2-Deploy 模块不会在开发环境中执行生成的命令。但如果你想禁用它,只需在 config/web.php 中覆盖 forceExecuteCommands 属性,如下所示

'modules' => [
    ...
    'deploy' => [
        'class' => 'dersonsena\deploy\DeployModule',
        'token' => '<SEU TOKEN>',
        'forceExecuteCommands' => true
    ],
    ...
]

参数化

'modules' => [
    ...
    'deploy' => [
        'class' => 'dersonsena\deploy\DeployModule',
        'token' => '<SEU TOKEN>',
        'enableComposer' => true // Padrão: true
        'gitBin' => '/usr/bin/git', // Caminho para o comando git do servidor (Padrão: /usr/bin/git)
        'phpBin' => '/usr/bin/php', // Caminho para o comando php do servidor (Padrão: /usr/bin/php)
        'composerBin' => '/usr/bin/composer' // Caminho para o comando composer do servidor (Padrão: /usr/bin/composer),
        'composerHome' => '/path/to/.composer' // Caminho para o COMPOSER_HOME (Padrão: null)
    ],
    ...
]