禅道开源版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、构建历史

查看构建日志。