集成版本库、集成Jenkins,并进行构建 分享链接

作者:王怡栋 最后编辑:苏萌 于 2023-12-20 09:00:10 浏览量:55390

禅道开源版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


参考资料

https://unix.stackexchange.com/questions/444177/how-to-disable-the-csrf-protection-in-jenkins-by-default

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、构建历史

构建日志


六、设置指令

系统会根据设置的指令,解析版本库的注释。根据解析结果对匹配的任务做处理。

该功能必须确保下面两个定时任务是正常的。