近期由于某些项目比较老旧的原因还在继续使用svn进行版本管理,在配置自动化部署时发现其webhook的配置与GtiLab有所区别,在此记录一下。
以下配置实现的效果为:在SVN版本库上提交代码后,自动去出发Jenkins上的某个Job。
一、每个SVN版本库都会有一个hooks目录。里面存储了各种钩子脚本(shell)。

二、hooks触发介绍

1)、每一个都对应了一个事件。
2)、如果要使用,需要cp一份,去掉后缀,保持和事件名一样。 hook可以用Shell,Python或其它语言写。
3)、另外hook需要加可执行权限,否则svn commit时会报错:
cp post-commit.tmpl post-commit
chmod +x post-commit
三、事件说明

四、post-commit脚本内容参考
post-commit本事就是一个Shell脚本,我们只需要将期望的操作编写进该脚本内。SVN检测到代码有变更后,就会来执行该脚本。
#!/bin/bash
#
#SVN版本库路径
REPOS="$1"
#SVN版本号
REV="$2"
#获取当前日期
DATE_TIME=`date +%y-%m-%d`
echo "$REPOS $DATE_TIME $REV" >> /tmp/text.txt
curl "http://192.168.199.248:8080/buildByToken/build?job=weimei_dev_test_pipeline&token=a4c2159409bc5b1409cc3c2c"
#脚本内容完结,备注最后的curl就是去发起GET请求,前提是Jenkins-Job的触发器配置好这个URL。
五、Jenkins-Job触发器配置

访问链接为:curl "l "http://192.168.199.248:8080/buildByToken/build?job=weimei_dev_test_pipeline&token=a4c2159409bc5b1409cc3c2c""
其他参考资料:https://blog.csdn.net/dahuzix/article/details/49053947
网友评论