一、起因
- web 开发人员希望代码提交后自动发布到线上测试页面
- 节省人工发布所需要的时间
- svn 和 web 部署在同一服务器
二、hooks实现
- 进入svn仓库目录下的hooks,编辑post-commit.tmpl
cd /data/svnroot/webdev/hooks/
cp post-commit.tmpl post-commit
vim post-commit
#!/bin/bash
REPOS="$1"
REV="$2"
export PATH="/usr/bin/:$PATH"
export LC_CTYPE=en_US.UTF-8
if (svnlook log -r $REV /data/svnroot/webdev | grep "auto_deploy")
then
echo "`date` 'auto deploy command received">> /tmp/svnautocommit.txt
svn export "svn://localhost/wedev" /data/www/web --force
chown www.www /data/www/ -R
fi
注:以上脚本仅供参考,跟据实际路径修改shell
chmod +x post-commit
当提交代码时在注释中加入
auto_deploy
就会自动发布了