项目结构
该代码托管在Github上 ,并提供一个Gradle构建,该构建可在本地下载并启动Jenkins(或Hudson)服务器以执行测试。 服务器设置为使用Gradle构建目录作为其工作目录,因此只需执行gradle clean即可将其删除。 我使用所需库的Jenkins版本和Hudson版本进行了尝试,除了两个CLI实现之间的一些古怪之处外,它们的功能仍然相同。 如果要使用Hudson而不是Jenkins进行尝试,请传递命令标志-Pswitch,并将使用适当的war和库。 该项目旨在与Gradle 1.0-milestone-8一起运行,并带有该版本的Gradle包装器 。 自原始文章以来,大多数代码都保持不变,但是对Jenkins和Hudson的较新版本进行了一些增强和更改。
该项目产生的库以Maven工件的形式发布,稍后我将确切描述如何实现。 还包括一些示例,这些示例演示了在Gradle或Maven项目中以及在Grapes的Groovy脚本中如何使用该库。 我们使用Groovy 1.8.6,Gradle 1.0-milestone-8和Maven 3.0.3构建所有内容。
充分利用CLI
作为api的替代方法,CLI jar是一种非常强大的与构建服务器进行交互的方式。 除了各种内置命令之外,Groovy脚本还可以远程执行,而我们只需付出一点努力就可以轻松地序列化响应,以处理服务器上提取的数据。 作为执行环境,服务器提供Groovysh Shell并为hudson.model包存储导入。 该包中的Jenkins / Hudson单例对象的实例也传递给Binding 。 在这些示例中,我使用的是向后兼容的Hudson版本,因为该代码旨在在两种服务器上均可运行。
可用命令
内置命令种类繁多,所有这些命令均在hudson.cli包中实现。 以下是正在运行的应用程序的CLI页面上列出的内容:
- build:构建作业,并且可以选择等待直到完成。
- cancel-quiet-down:取消“ quiet-down”命令的效果。
- clear-queue:清除构建队列
- connect-node:重新连接到节点
- 复制作业:复制一份工作。
- create-job:通过读取stdin作为配置XML文件来创建新作业。
- delete-builds:删除构建记录。
- delete-job:删除工作
- delete-node:删除节点
- disable-job:禁用工作
- 断开节点:与节点断开连接
- enable-job:启用工作
- get-job:将作业定义XML转储到stdout
- groovy:执行指定的Groovy脚本。
- groovysh