使用钩子 post-commit触发同步代码

post-commit是在版本提交之后处理一些动作
1,安装svn

yum install subversion

2,创建版本库目录

svnadmin create /svn/svndate/web1

3,修配置文件

 sed -i  's/# anon-access = read/anon-access = none/g' svnserve.conf.bak 
 sed -i  's/# password-db = passwd/password-db = passwd/g' svnserve.conf.bak 
 sed -i  's/# auth-access = write/auth-access = write/g' svnserve.conf.bak 
 sed -i  's/# realm = My First Repository/realm = web1/g' svnserve.conf.bak 
 sed -i  's/# authz-db = authz/authz-db = authz/g' svnserve.conf.bak 

4,添加账户密码文件

echo mark1 mark1 >>passwd

5,修改权限

cat >>authz<<EOF
admin = mark,mark1
[web1:/]
@admin = rw
* = r
EOF

启动

svnserver -d -r /svn/svndate

输入用户密码即可

6,将web1拉取到svnserver的svnupdate中,rsync会从server本地推送到远端

svn co svn://10.10.233.19/web1/ /svnupdate/ --username=mark1 --password=mark1

7,进入web1 hooks中添加脚本,当web1有更新则会自动rsync到远程服务器节点
vim post-commit

#!/bin/bash
# www.linuxea.com
#this post-commit
IP=10.10.238.94
REPOS="$1"
REV="$2"
export LC_CTYPE="en_US.UTF-8"
export LC_ALL=
#export LANG=en_US.UTF-8
LOGPATH="/app/log"
[ ! -d ${LOGPATH} ] && mkdir ${LOGPATH} -p
#update content from svn
SVN=/usr/bin/svn
$SVN update /svnupdate --username mark1 --password mark1
if [ $? -eq 0 ]
 then
         /usr/bin/rsync -az --delete /svnupdate/ root@$IP:/var/www/html
fi

修改权限

chmod +700 post-commit
1 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2016-06-15分类: 持续集成

标签: none

发表评论