禅道开源版12.1版本开始,增加了集成功能,可以集成Jenkins,并调用Jenkins进行构建。
一、创建代码版本库
最新版本的禅道,进入代码视图,默认是需要先创建版本库。
只有创建了版本库成功了,才可以使用代码。
- 名称即subversion库的名字。
- 地址是subversion库的访问路径,比如http://zentaoms.goglecode.com/svn,不一定是根路径,可以是某一个下级路径。
- subversion库文件的编码。
- 客户端软件的地址。linux下面可能是/usr/bin/svn(git可能是/usr/bin/git),需要将svn版本升级到1.9以上。windows可以下载sliksvn(Windows一件安装包中已经集成)的客户端(git请使用msysGit),然后指定svn.exe的路径。(特别提醒:1、客户端需要和禅道放在同一台服务器上;2、客户端的路径中不能包含空格和中文;3、如果要使用https协议,需要保证https证书的合法性,后面不能直接跟ip地址;4、git仓库必须和禅道在同一台电脑上,地址栏直接写仓库的文件目录即可。)
- 用户名和密码。如果不需要用户名和密码的,置空就可以了。
编辑保存之后,系统会进行初始化,获得历次的修改记录。
二、浏览版本库
配置完成之后,就可以浏览subversion的库了。
点击右上角的 刷新 按钮,即刷新目录缓存。如果配置的时候遇到问题导致没有将注释加载到禅道,可以删除代码库再重新配置即可。
三、查看文件,进行比对
四、集成Jenkins
1、安装Jenkins
安装文档 :https://jenkins.io/zh/doc/book/installing/
注意:安装时间可能比较长,需要安装一些插件。
配置Jenkins
执行的构建Shell
GIT ===Jenkins构建后命令=== echo "PARAM_TAG = $PARAM_TAG"; echo "PARAM_REVISION = $PARAM_REVISION"; [ -z ${PARAM_TAG} ] || git checkout "${PARAM_TAG}" [ -z ${PARAM_REVISION} ] || git checkout "${PARAM_REVISION}" cat README ===说明=== 参数 PARAM_TAG:tag名 PARAM_REVISION:revison编号 初始化 git clone https://gitee.com/aaronchen2k/ci_test.git 构建tag export PARAM_TAG=tag111 [ -z ${PARAM_TAG} ] || git checkout "${PARAM_TAG}" 构建revision export PARAM_REVISION=6c3a7bf931855842e261c7991bb143c1e0c3fb19 [ -z ${PARAM_REVISION} ] || git checkout "${PARAM_REVISION}" SVN ===Jenkins构建后命令=== echo "PARAM_TAG = $PARAM_TAG"; echo "PARAM_REVISION = $PARAM_REVISION"; svn upgrade [ -z ${PARAM_TAG} ] || svn switch --ignore-ancestry "${PARAM_TAG}" [ -z ${PARAM_REVISION} ] || svn up -r "${PARAM_REVISION}" cat README ===说明=== 参数 PARAM_TAG:tag url PARAM_REVISION:revison数字 初始化 svn checkout --username aaronchen2k --password P2ssw0rd svn://svnbucket.com/aaronchen2k/ci_test_svn/trunk/ . 构建tag export PARAM_TAG=svn://svnbucket.com/aaronchen2k/ci_test_svn/tags/tag111 [ -z ${PARAM_REVISION} ] || svn upgrade [ -z ${PARAM_TAG} ] || svn switch --ignore-ancestry "${PARAM_TAG}" 构建revision export PARAM_REVISION=9 [ -z ${PARAM_REVISION} ] || svn upgrade [ -z ${PARAM_REVISION} ] || svn up -r "${PARAM_REVISION}"
注意:
如果 jenkins 版本比较高(在Jenkins启动前加入相关取消保护的参数配置后启动Jenkins,即可关闭CSRF):
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false
参考资料
http://www.likecs.com/show-105574.html
a. Jenkins若是跑在Tomcat下,只需在tomcat启动脚本中加入配置即可;若是以jar包形式部署的,只需在启动时加上配置参数即可。
b. 如果docker部署的话,需要配置下java环境变量
FROM jenkins/jenkins:latest ENV JAVA_OPTS -Djava.net.preferIPv4Stack=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false
2、集成Jenkins
推荐使用Token,如下图创建token:
五、执行构建任务
1、添加构建任务
注意:
如果遇到 jenkins服务器选择后jenkins任务是空的(前提是jenkins中的确有任务存在),到jenkins全局设置中把“匿名用户具有可读权限”前面打上对号:
触发方式:
GIT打标签:GIT版本库当有新tag的时候,执行构建任务。
SVN 监控目录:当SVN监控目录中有目录变动的时候,执行构建任务。
提交注释包含关键字:当检测版本库的注释里面包含设置关键字的时候,执行构建任务。
定时计划:会在设置的日期和时间,执行构建定时任务
2、执行构建
为了成功构建任务,必须保证计划任务开启,并且保证下图的三个计划任务正常
手动构建
3、构建历史
构建日志
六、设置指令
系统会根据设置的指令,解析版本库的注释。根据解析结果对匹配的任务做处理。
该功能必须确保下面两个定时任务是正常的。