avirdz/hookdeploy

该包已被废弃,不再维护。未建议替代包。

用于将git仓库部署到Web服务器的PHP脚本

安装: 54

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 1

开放问题: 1

类型:项目

v1.2.5 2017-02-07 01:34 UTC

This package is auto-updated.

Last update: 2020-06-11 00:26:38 UTC


README

hookdeploy是一个用于bitbucket git仓库的PHP部署脚本。它还与composer、npm、bower和gulp有基本的集成。

使用composer安装

composer create-project avirdz/hookdeploy

要求

  • 您需要bitbucket账户的ssh访问权限。
  • 如果您启用了composer、npm、bower或gulp,它们必须可通过www-data访问。
  • www-data需要git_dir和分支路径的写权限。
  • www-data需要访问配置的私钥。

资源

全局配置

添加新文件config.php,复制config.example.php文件的内容并做出更改。

描述
git (字符串) 默认: git git命令(*)
composer (字符串) 默认: composer composer命令(*)
composer_home (字符串) 默认: /usr/local/bin composer home环境变量
npm (字符串) 默认: npm npm命令(*)
gulp (字符串) 默认: gulp gulp命令(*)
bower (字符串) 默认: bower bower命令(*)
create_dirs (布尔值) 默认: false 自动创建所有必要的目录,需要不同目录的写权限
hookdeploy_settings_dir (字符串) 默认: /var/www/.hookdeploy_settings composer、npm和bower缓存文件夹创建于此。
http_test (布尔值) 默认: false 如果为true,您可以通过直接访问脚本在浏览器中进行测试,必须禁用IP限制
bg_command (字符串) 默认: /dev/null 2>&1 & 运行所有其他命令的命令的一部分
quiet (字符串) 默认: -q 运行composer、npm和bower的静默模式参数
debug (字符串) 默认: null 运行composer、npm和bower的调试模式参数,此参数通过浏览器测试启用

(*) 避免权限错误,通过设置这些命令的完整路径。

项目配置

描述
full-project-name (数组) 将键名替换为您的完整项目名称
  • private_key | (字符串) | ssh私钥的完整路径
  • git_dir | (字符串) | 本地克隆仓库的完整路径
  • remote_repository | (字符串) | 远程仓库路径ssh格式
  • 分支(数组)| 待部署的分支 |||'branch_name' => 'deployment path' 常见环境分支,如 master(生产),develop(开发)
  • 发布版本(数组)| 待部署的发布版本 |||'deploy' => false, 部署发布版本 |||'name_regex' => '/^release\/v?[0-9]+\.[0-9]+(?:\.[0-9]+)?$/i', 发布版本名称的正则表达式 |||'path' => '/var/www/myproject-latest' 部署最新发布版本的路径
  • run_composer | (布尔值) 默认:false | 运行 composer install 命令
  • run_npm | (布尔值) 默认:false | 运行 npm install 命令
  • run_bower | (布尔值) 默认:false | 运行 bower install 命令
  • run_gulp | (布尔值) 默认:false | 运行 gulp 任务命令
  • gulp_task | (字符串) 默认:live | 要运行的任务名称
  • valid_gulp_tasks | (数组) | 可以通过提交消息运行的有效的 gulp 任务

通过提交消息运行 gulp 任务

您可以通过提交消息运行 gulp 任务,只需在您的最后一条提交消息中添加以下格式

#gulp <task>#

将 <task> 替换为项目配置中 valid_gulp_tasks 键上的有效任务。

提交示例

Removed some unused files #gulp clear:all#

测试

测试您的私钥并将 bitbucket 添加到 known_hosts

sudo -Hu www-data ssh -i ~/.ssh/myPrivateKey -T git@bitbucket.org

通过浏览器测试

这是测试您的设置的最好方法。

将 hookdeploy 配置为通过浏览器设置全局配置 "http_test" 键为 true 来运行脚本。然后暂时禁用 .htaccess 中的 IP 限制。在浏览器中输入 hookdeploy 脚本的 URL,使用以下 GET 参数

描述
run empty|composer|npm|bower|gulp 此参数必须设置,以便运行 HTTP 测试,您可以设置任何其他命令进行测试,例如:composer(这将运行 composer install 命令),您可以通过逗号或其他分隔符分隔多个命令来运行多个命令,例如:composer,npm
bg 任何值 如果您想禁用命令的静默模式并激活调试输出以获取更多信息,则必须设置此参数,命令将正常运行(背景和静默模式)如果此参数不存在
r 完整项目名称 要测试的项目,来自 $p 配置的完整项目名称,斜杠必须用 "%2F" 编码,如果此参数不存在,则脚本将取您的 $p 配置中的第一个项目
b 分支名称 要测试的分支,如果此参数不存在,则脚本将取您的项目配置中的第一个分支
示例测试 URL
http://my-host/hookdeploy.php?run=composer&bg=1&r=myuser%2Fmyproject&b=develop

许可证

MIT