{"result": "SUCCESS", "endTime": 1469453903, "ciUrl": "http://localhost:8080/j必威国际有限公司enkins/", "fullJobName": "test_job", "number": 252, "jobName": "test_job", "duration": 11252,}
目标:能够从詹金斯那里听到并发射云事件。必威国际有限公司
状态:活跃的
随着CI/CD世界越来越趋向于多平台之间的互操作性,Jenkins也应该与相同的互操作性标准兼容。必威国际有限公司其中一些关于不同CI/CD平台之间通信的标准是由cloudevents规范提出的。该规范概述了云事件的结构,云事件由支持它的实体生产或使用,从而使这些实体与其他支持它们的CI/CD平台兼容,使它们能够一起工作。
必威国际有限公司Jenkins目前不支持cloudevents,这使得用户很难在支持它的其他平台上使用它。
这个插件扩展了Hudson-Model包中的Listener类(詹金斯的听众必威国际有限公司),它为Jenkins服务器内的各种事件提供监听器实现。必威国际有限公司
从对象监听器接收到的数据被包装到CloudEvents规范中使用CloudEvents Java SDK作为事件有效负载。为了使这个有效负载符合cloudevent,需要在HTTP请求中传递一些header形式的附加元数据。使用从用户接收到的GlobalConfiguration信息,事件有效负载和自定义HTTP头将被发送到给定的HTTP接收器。
下面是一个例子,说明了从Jenkins发出的CloudEvent在任务构建成功时的事件负载必威国际有限公司
{"result": "SUCCESS", "endTime": 1469453903, "ciUrl": "http://localhost:8080/j必威国际有限公司enkins/", "fullJobName": "test_job", "number": 252, "jobName": "test_job", "duration": 11252,}
下面是一个必须传递附加头的示例,以使事件数据符合cloudevent
ce-specversion: 1.0 ce-type: job.build.finished ce-source: <必威国际有限公司Jenkins' Server> ce-id: <自定义UUID>
必威国际有限公司詹金斯作为信息源
在CloudEvents Plugin中扩展GlobalPluginConfiguration,以支持跨Jenkins服务器监听和发出Jenkins对象(项目、运行、构建等)的Jenkins事件必威国际有限公司。
UI更改允许用户将Jenkins配置为分别发出和消费CloudEvents的So必威国际有限公司urce和Sink。
配置HTTP接收器的外部URL,将发送来自Jenkins的CloudEvents。必威国际有限公司
用户希望发送到接收器的事件的选择(构建开始、构建-构建、构建-完成)。
在Jenkins服务必威国际有限公司器上监听Jenkins事件,并将事件数据包装到与cloudevent兼容的规范中,通过HTTP发送到Sink。
必威国际有限公司詹金斯的洗涤槽
实现与Jenkins对象(作业、项目、队列)相关联的RootAction。必威国际有限公司Action的URL将接收带有CloudEvents有效负载的HTTP请求。
遍历接收到的请求,并提取数据,这些数据将决定Jenkins中的下一个操作。必威国际有限公司
在Jenkins服务器内触发下一个操作。必威国际有限公司例如,根据来自Debezium的数据更改事件构建项目#5.
文档和测试
每个阶段都有严格的测试和文档记录。
我们使用# gsoc - 20必威国际有限公司21 -詹金斯cloudevents插件
通道中的CDF Slack工作区。如何加入CDF Slack.
CloudEvents插件团体会议每年举行一次周一13:00 UTC.
缩放链接:https://cloudbees.zoom.us/j/94985456924(ID: 94985456924,密码:167462)