SVN利用POST-COMMIT钩子自动部署代码到生产环境中
时间:2015-09-20 23:14 来源:linux.it.net.cn 作者:IT
首先创建svn版本库/data/svn/jincon.com,然后在svn库中创建svn钩子,在开发电脑上检出最初版本,并且将自己的代码 提交到svn上,此时svn钩子将会把代码实时检出/更新到/data/site/www.jincon.com站点目录中。最后访问浏览器测试。
1、先创建版本库:
svnadmin create /data/svn/jincon.com
2、编辑post-commit文件
1
# vim /data/svn/jincon.com/hooks/post-commit
3、post-commit代码:
01
#!/bin/bash
02
# DateTime:2015-01-01
03
# AuthorName: Jincon
04
# description:用于实时检出的钩子
05
06
# 基本变量
07
export LANG=en_US.UTF-8
08
dateTime=`date +%F`
09
dateTimeMinute=`date +%H%M%S`
10
binSvn=/usr/bin/svn #你svn的绝对路径
11
dirHtmlApp=/data/site/www.jincon.com #检出的web站点根目录
12
logFileName=/tmp/svnhooks_${dateTime}.log
13
14
# svn配置
15
REPOS="$1"
16
REV="$2"
17
18
# 检出或者更新subversion,钩子的核心功能
19
echo "-- $dateTimeMinute" >> $logFileName
20
if [ ! -d $dirHtmlApp/.svn ]; then
21
# 检出SVN
22
echo "$binSvn co file://$REPOS/ $dirHtmlApp" >> $logFileName
23
$binSvn co file://$REPOS/ $dirHtmlApp
24
if [ $? -eq 0 ]; then
25
echo "checkout ok" >> $logFileName
26
else
27
echo "checkout error" >> $logFileName
28
fi
29
else
30
# 更新svn
31
echo " $binSvn up $REV $dirHtmlApp " >> $logFileName
32
$binSvn up $REV $dirHtmlApp >> $logFileName
33
if [ $? -eq 0 ]; then
34
echo " update sucess " >> $logFileName
35
else
36
echo " update fial " >> $logFileName
37
fi
38
fi
39
echo "--" >> $logFileName
(责任编辑:IT)
首先创建svn版本库/data/svn/jincon.com,然后在svn库中创建svn钩子,在开发电脑上检出最初版本,并且将自己的代码 提交到svn上,此时svn钩子将会把代码实时检出/更新到/data/site/www.jincon.com站点目录中。最后访问浏览器测试。 1、先创建版本库: svnadmin create /data/svn/jincon.com 2、编辑post-commit文件
(责任编辑:IT) |