Paw*_*iel 63
PHP中的示例:
导航到github进入你的github存储库添加点击"管理员"
点击标签'Service Hooks'=>'WebHook网址'
并添加
http://your-domain-name/git_test.php
Run Code Online (Sandbox Code Playgroud)
然后创建git_test.php
<?php
try
{
$payload = json_decode($_REQUEST['payload']);
}
catch(Exception $e)
{
exit(0);
}
//log the request
file_put_contents('logs/github.txt', print_r($payload, TRUE), FILE_APPEND);
if ($payload->ref === 'refs/heads/master')
{
// path to your site deployment script
exec('./build.sh');
}
Run Code Online (Sandbox Code Playgroud)
在build.sh中,您需要放置常用命令以从github检索您的站点
Wes*_*son 23
有几个提到Git钩子作为答案/评论,过去对我有用..所以这是我的配方,如果其他人需要更多的细节.
我使用git post-receive hook和node-supervisor的组合来完成简单的自动部署(假设你在该机器上使用git远程存储库).
设置您的接收后挂钩
在您的存储库中: sudo vi hooks/post-receive
它应该看起来像:
#!/bin/sh
GIT_WORK_TREE=/home/path/to/your/www
export GIT_WORK_TREE
git checkout -f
Run Code Online (Sandbox Code Playgroud)
设置文件权限: chmod +x hooks/post-receive
在推送到repo后,Git将刷新app目录中的文件.
使用Node-Supervisor运行节点
您需要在计算机上安装Node-Supervisor作为全局节点模块: sudo npm install supervisor -g
现在只需使用node-supervisor运行您的节点应用程序,它将监视工作目录中文件的更改:
supervisor /home/path/to/your/www/server.js
(注意supervisor
而不是node
).
Sau*_*abh 18
可能很晚才回到这里.但是我在github上找到了这个项目,似乎做了你想做的事,但是以更清洁的方式.
https://github.com/logsol/Github-Auto-Deploy
看看这个.也有兴趣知道其他人在评论和赞成票方面的想法.
干杯,
S
我刚刚发布了一个基于节点的解决方案来解决你的问题:node-cd
它包含一个在你的VPS上运行的简单节点应用程序,它将接收Github后接收Hook并执行你喜欢的脚本(例如一个shell脚本会杀死你的app,git pull,然后重启它).
归档时间: |
|
查看次数: |
62158 次 |
最近记录: |