禅道开源版12.1版本开始,增加了集成功能,可以集成Jenkins,并调用Jenkins进行构建。以下是具体的操作步骤:
一、创建代码版本库
1. 进入最新版本的禅道,在代码视图中,默认需要先创建版本库。只有创建了版本库成功了,才可以使用代码。
2. 在创建版本库时,需要设置名称(即subversion库的名字)、地址(是subversion库的访问路径,比如http://zentaoms.goglecode.com/svn,不一定是根路径,可以是某一个下级路径)、文件编码以及客户端软件的地址。对于Linux系统,客户端软件可能是/usr/bin/svn(git可能是/usr/bin/git),需要将svn版本升级到1.9以上。对于Windows系统,可以下载sliksvn(Windows一件安装包中已经集成)的客户端(git请使用msysGit),然后指定svn.exe的路径。
3. 在配置过程中,需要注意以下几点:
- 客户端需要和禅道放在同一台服务器上;
- 客户端的路径中不能包含空格和中文;
- 如果要使用https协议,需要保证https证书的合法性,后面不能直接跟ip地址;
- git仓库必须和禅道在同一台电脑上,地址栏直接写仓库的文件目录即可。
4. 如果不需要用户名和密码,可以将相应的字段置空。
5. 编辑保存之后,系统会进行初始化,获得历次的修改记录。
二、浏览版本库
1. 配置完成之后,就可以浏览subversion的库了。点击右上角的刷新按钮,即刷新目录缓存。如果配置的时候遇到问题导致没有将注释加载到禅道,可以删除代码库再重新配置即可。
三、查看文件,进行比对
四、集成Jenkins
1. 首先需要安装Jenkins。注意:安装时间可能比较长,需要安装一些插件。
2. 配置Jenkins。在Jenkins中添加一个新的任务,选择"构建一个自由风格的软件项目"。在源码管理部分,选择"Subversion",并输入之前创建的版本库的信息(如URL、用户名和密码等)。在构建触发器部分,可以选择定时构建或者代码提交后自动构建。在构建环境部分,可以选择合适的JDK版本。在构建步骤部分,可以选择执行的构建Shell(如"sh","bat"等)。
3. 保存配置后,点击"立即构建",即可开始使用Jenkins进行构建。
```
# 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:revision编号
# 初始化
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
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:revision数字
# 初始化
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`参数。
参考资料:
a. 如果Jenkins部署在Tomcat上,只需在Tomcat的启动脚本中加入配置;如果是以jar包形式部署的,只需在启动时加上相应的配置参数即可。
b. 如果是使用Docker部署的话,需要配置好Java环境变量。示例代码如下:
```dockerfile
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打标签触发构建任务。
- 监听SVN仓库中的目录变动,当有目录发生变动时触发构建任务。
- 当提交的注释中包含指定关键字时,触发构建任务。
- 设定时间计划任务,在指定日期和时间执行构建任务。
2、执行构建
为了成功执行构建任务,需确保计划任务已开启,并且下图中的三个计划任务正常运行。
手动触发构建任务。
3、构建历史
查看构建日志。