博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN 以及自动部署配置
阅读量:7229 次
发布时间:2019-06-29

本文共 4158 字,大约阅读时间需要 13 分钟。

hot3.png

1.配置权限

[root@localhost conf]# cat authz [groups]g_manager = user1,user2g_developer = user2[repo:/]@g_manager = rw* =[repo:/inspur]@g_manager = rw@g_developer = rw* =[root@localhost conf]# cat passwd [users]user1=123456user2=123456[root@localhost conf]# [root@localhost conf]# cat svnserve.conf [general]#匿名访问的权限,可以是read,write,none,默认为readanon-access = none#认证用户的权限,可以是read,write,none,默认为writeauth-access = write#密码数据库的路径,去掉前面的#password-db = passwdauthz-db = authz

2.启动命令

[root@localhost conf]# /usr/bin/svnserve -d -r /home/logonuser/svn --listen-port 7001 &

3.ANT自动部署

[root@localhost hooks]# cat build.xml
部署完毕,请测试是否部署成功。
[root@localhost hooks]# cat post-commit#!/bin/sh export LANG=zh_CN.UTF-8 JAVA_HOME=/usr/java/jdk1.6.0_32JAVA_BIN=$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarCLASSPATH=./home/logonuser/svn/repo/hooks/jar/1.jar:/home/logonuser/svn/repo/hooks/jar/2.jar:/home/logonuser/svn/repo/hooks/jar/3.jar:/home/logonuser/svn/repo/hooks/jar/4.jar:/home/logonuser/svn/repo/hooks/jar/5.jar:/home/logonuser/svn/repo/hooks/jar/6.jar:$CLASSPATH#1-6.jar下载链接: https://pan.baidu.com/s/1o8MuzLS 密码: xf6tPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME JAVA_BIN PATH CLASSPATH REPOS="$1" # 仓库的路径 REV="$2" # 新提交的版本号 LOGFILE=/home/logonuser/autosvn.log # 钩子脚本的日志 # 脚本的标准输出和标准错误输出都打印到日志文件里 exec 1>>"$LOGFILE" exec 2>&1 SVN=/usr/bin/svn SVNLOOK=/usr/bin/svnlook TIME=$(date "+%Y-%m-%d %H:%M:%S") AUTHOR=$($SVNLOOK author -r $REV "$REPOS") #提交作者 CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目录集合 MESSAGE=$($SVNLOOK log -r $REV "$REPOS") #提交时的备注信息,不建议用中文 # SVN客户端配置 *********************************************** CLIENTSVNROOT=/home/logonuser/www #WEB服务器的代码根目录 SVNUSER="xxx" SVNPASSWD="xxx" #************************************************************** function myecho() { echo "$TIME" "$*" } myecho "**************************************************************" myecho "提交版本:$REV 作者:$AUTHOR" myecho "提交备注:$MESSAGE" myecho "修改目录:$(echo $CHANGEDDIRS | tr '\n' ' ')" Content=$(echo $CHANGEDDIRS | tr '\n' ' ')MASTERDIR=$(echo "$CHANGEDDIRS" | head -1) #CHANGEDDIRS里的主目录 # 遍历提交的代码目录,同步到WEB服务器上 while [ "$CHANGEDDIRS" != "" ];do myecho myecho "同步目录:$MASTERDIR" myecho "同步 $MASTERDIR 到 $CLIENTSVNROOT/$MASTERDIR" ${SVN} update --no-auth-cache --username $SVNUSER --password $SVNPASSWD $CLIENTSVNROOT/$MASTERDIR # 在目录集合里删除已经同步好的目录 CHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v "^$MASTERDIR") # 获取新的需要同步的主目录 MASTERDIR=$(echo "$CHANGEDDIRS" | head -1) doneif [[ $Content =~ "src" ]]then /home/logonuser/jetty.test/bin/jetty.sh stop ant -f /home/logonuser/svn/repo/hooks/build.xml chown -R logonuser:logonuser /home/logonuser/www/guangjie/WebRoot/WEB-INF/classes /home/logonuser/jetty.test/bin/jetty.sh restartelse echo "不包含src文件,不需要重启服务器"fiif [[ $MESSAGE =~ "none" ]]then echo "包含none,不需要发送通知"else /usr/bin/mutt -s "作者 $AUTHOR 部署了新代码,提交版本 $REV,提交备注 $MESSAGE" xxx@139.comfi

 

转载于:https://my.oschina.net/fengyunfu/blog/743658

你可能感兴趣的文章
CentOS 7 root口令恢复
查看>>
| 刘知远:让计算机听懂人话
查看>>
苹果收购初创公司Tueo Health,哮喘监测或将应用到Apple Watch
查看>>
CLR存储过程
查看>>
初级运维(一)
查看>>
C语言字符串常用函数学习(一)
查看>>
Lync Server 2010部署与应用(三)---拓扑生成与发布
查看>>
安全摘记1:关于安全与黑客
查看>>
我的友情链接
查看>>
tbox中vector容器的使用
查看>>
一个简单的PHP笔试题
查看>>
firebug重新载入页面获取源码
查看>>
我的友情链接
查看>>
5月末周中国.COM总量净增1.2万个 美国净减2.6万个
查看>>
Elasticsearch数据建模-关联查询
查看>>
我的友情链接
查看>>
CentOS 下安装 Lnmp
查看>>
redis系列:通过日志案例学习string命令
查看>>
世界冠军之路:菜鸟车辆路径规划求解引擎研发历程
查看>>
Linux-sendmail
查看>>