hooks

利用SVN hooks +cURL, 对SVN服务器进行实时同步

与世无争的帅哥 提交于 2019-12-05 05:26:16
团队协同开发,一般都要用到svn, svn确实是个好东东。但一些程序员做测试都是在开发服务器上进行,所以开发同学提交到svn的代码 ,还需一步,就是手工更新到开发服务器。 一般的办法是,就是用python的web.py框架,写一个更新的脚本,通过http的方式对svn进行更新同步。 实现方法: 下面用web.py框架实现的步骤: 1、框架安装 cd /usr/local/soft/ wget http://webpy.org/static/web.py-0.33.tar.gz tar zxvf web.py-0.33.tar.gz cd web.py-0.33 python setup.py install 2、编写代码 vi /usr/local/webpy/subversion_web.py #!/usr/bin/env python # … import web,os render = web.template.render(‘templates/’) urls = ( ‘/’, ‘index’ ) app = web.application(urls, globals()) class index: def GET(self): text = os.popen(“cd /home/htdocs/app;svn update”).read() print text

使用inotify和git pull 实现网站自动部署(附wordpress插件)

[亡魂溺海] 提交于 2019-11-30 22:54:13
本文转载自我的个人网站的博客文章,原文: 使用inotify和git-pull-实现网站自动部署附wordpress插件 --------------------- 我的个人网站项目托管在osc的git仓库里,以前的更新方法是从把代码从本地push到git仓库后,远程登陆服务器,执行一次git pull,把代码更新到服务器。久而久之,渐渐觉得这样的方式太过麻烦。 我们知道,git仓库一般都提供web hooks, 就是每次push代码后,都会给远程HTTP URL发送一个POST请求,比如这是oschina的web hook: http://git.oschina.net/oschina/git-osc/wikis/WebHook-%E4%BD%BF%E7%94%A8%E7%AE%80%E4%BB%8B 。 所以一个可行的办法是服务器收到这个web hook 的post请求之后在网站目录自动执行一次git pull, 这样就把代码更新到服务器了。 但是有一个问题,服务器使用的是php,它获取这个请求之后,由于运行php-fpm的用户为daemon,因为安全因素,网站目录对这个用户并不全部可写,所以执行git pull需要root权限,而且,使用 system (),exec(),passthru()这类调用外部程序的函数有一定的危险,我也不喜欢。 然后找到了一个神器: