测试进阶之——通过SVN钩子技术实现测试版本自动发布

上篇文章学习了怎么在Linux系统下搭建SVN服务器,今天我们继续学习怎么通过SVN实现软件(如网站)测试版本的自动部署。

众所周知,软件需要不定期的发布版本,在测试环境,甚至一天一个测试版本,那有没有什么方便快捷的方法,让保存在SVN上的代码快速的发布到测试环境呢?答案是肯定的,不仅仅快速,而且是可以即时发布的——通过SVN的hooks技术(钩子技术)。

cd到hook目录,ls查看下文件列表:

测试进阶之——通过SVN钩子技术实现测试版本自动发布

上图可以看到有许多模板文件,逐个解释一下,其中

post-commit:提交完成,成功创建版本之后执行该钩子

post-unlock:对文件进行解锁操作之后执行该脚本

pre-revprop-change:在修改 revision 属性之前,执行该脚本

post-lock:文件进行加锁操作之后执行该脚本

pre-commit:在提交之前,执行该脚本

pre-unlock:对文件进行解锁操作之前执行该脚本

扫描二维码关注公众号,回复: 12789956 查看本文章

post-revprop-change:修改 revision 属性之后,执行该脚本

pre-lock:对文件进行加锁操作之前执行该脚本

start-commit:在客户端还没有向服务器提交数据之前,执行执行该脚本

这就是SVN的钩子(hooks)技术。通过钩子技术,我们可以编写各种钩子脚本,那么SVN客户端在操作文件各环节(如提交、开始提交、加锁、解锁等)前后就会对应调用并执行这些钩子脚本,达到我们的各种目的。

现在想在每次提交完成后,就自动发布更新的代码到部署测试版本的目录下。那我们使用post-commit脚本

编写一个提交完成的钩子脚本

1:在Linux本机checkout一个工作副本到/home/lemon目录下,作为我们站点发布的目录

2:在hooks目录下新建脚本

vim
/var/svn/lemon/hooks/post-commit,新建并编辑提交完成的脚本post-commit如下

#!/bin/sh

export.UTF-8

export LC_ALL=zh_CN.UTF-8

export LANGUAGE=zh_CN.UTF-8

svn update svn://127.0.0.1/lemon /home/lemon --username lemon1 --password 123456

这里的svn update svn://127.0.0.1/lemon /home/lemon --username lemon1 --password 123456 表示当有提交完成的操作时,就更新/home/lemon副本。其中

--username lemon1 --password 123456 :表示使用该用户名、密码进行更新操作。

3:授执行权限

编辑完成的脚本暂时是没有执行权限的,使用chmod +x post-commit 为脚本文件授执行权限。

执行完毕,可以看到脚本已经具备执行权限了

测试进阶之——通过SVN钩子技术实现测试版本自动发布

4:测试是否同步更新

在我们的另外一台主机checkout一个副本,新建一个文件hello.html,然后提交,模拟版本发布。然后cd到Linux的/home/lemon工作副本下,可以看到这个副本也同步更新了hello.html

通过以上步骤,我们就解决了不用手动在Linux下进行svn update操作,而是只要其他SVN客户端一有提交,subversion就会调用编写的钩子脚本,实现自动同步。

上面是我收集的一些视频和面试题资料。

对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你

关注我的微信公众号【程序员二黑】免费获取
 

猜你喜欢

转载自blog.csdn.net/m0_52668874/article/details/114988082