Svn提交后触发Jenkins自动构建

一、Jenkins配置步骤
1.登录Jenkins,创建一个自由风格的Job,如下图:
在这里插入图片描述

2.【源码管理】选中【Subversion】,填写相关SVN信息,如下图:
在这里插入图片描述

3.进入【系统管理】-【管理用户】-【新建用户】,创建用户,账号:test,密码:123qwe,如下图:
在这里插入图片描述

4.进入【系统管理】-【Jenkins命令行接口】,进入【Jenkins命令行】页面,下载jenkins-cli.jar,放到Svn所在服务器的root目录下,如下图:
在这里插入图片描述

5.进入Svn的hooks目录下,创建文件post-commit,并赋予执行权限,如下图:
在这里插入图片描述

6.编辑文件post-commit,内容如下:

#!/bin/bash
source /etc/profile
java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ -auth test:123qwe build test

7.svn提交代码后,查看Jenkins任务是否触发。

二、FAQ

Q:svn 钩子 post-commit 出现255错误
R:post-commit 脚本文件的权限不对
S:post-commit 脚本必须有 +x 权限,给post-commit添加可执行权限
参见:https://blog.csdn.net/webnoties/article/details/40539431
Q:svn提交代码,触发post-commit钩子,出现如下报错:

在这里插入图片描述

R:post-commit脚本中缺少JDK环境变量
S:post-commit脚本中添加source /etc/profile
Q:执行命令java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ build test出现如下错误:'ERROR: anonymous is missing the Overall/Read permission'
R:没有进行身份验证
S:
方案一:
进入Jenkins【系统管理】-【全局安全配置】-【授权策略】选中【登录用户可以做任何事】后保存
方案二:
命令中添加-auth参数,修改命令如下:
java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ -auth test:123qwe build test

猜你喜欢

转载自blog.csdn.net/q13554515812/article/details/86651851