Jenkins的CloudEvents插件必威国际有限公司

目标:能够从詹金斯那里听到并发射云事件。必威国际有限公司

状态:活跃的

团队

细节

背景

随着CI/CD世界越来越趋向于多平台之间的互操作性,Jenkins也应该与相同的互操作性标准兼容。必威国际有限公司其中一些关于不同CI/CD平台之间通信的标准是由cloudevents规范提出的。该规范概述了云事件的结构,云事件由支持它的实体生产或使用,从而使这些实体与其他支持它们的CI/CD平台兼容,使它们能够一起工作。

必威国际有限公司Jenkins目前不支持cloudevents,这使得用户很难在支持它的其他平台上使用它。

项目详细信息

这个项目的想法是实现一个Jenkins插件,它扩展了Jenkins,使云事件既可发现必威国际有限公司又可订阅。用户应该能够设置一个全局配置,以允许用户订阅和发现cloudevents。

该项目要求学生从插件开发开始,然后理解如何使用Cloudevents Java SDK创建和读取事件。

在一开始,学生可以通过编写代码来创建一个简单的构建步骤来理解Jenkins插件的开发,这个步骤创建一个CloudEven必威国际有限公司t,然后我们可以转到GlobalPluginConfiguration,了解Jenkins应该如何监听CloudEvent。

实现

必威国际有限公司詹金斯作为信息源

这个插件扩展了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>

必威国际有限公司詹金斯的洗涤槽

这一阶段将涉及到实现与Jenkins对象相关联的RootAction,该对象将监听通过HTTP发送的来自外部系统的CloudEv必威国际有限公司ents。在提取CloudEvent有效负载之后,将在Jenkins服务器内部执行一个新的操作,这取决于触发事件的源和事件的类型。必威国际有限公司

可交付成果

  1. 必威国际有限公司詹金斯作为信息源

    • 在CloudEvents Plugin中扩展GlobalPluginConfiguration,以支持跨Jenkins服务器监听和发出Jenkins对象(项目、运行、构建等)的Jenkins事件必威国际有限公司。

    • UI更改允许用户将Jenkins配置为分别发出和消费CloudEvents的So必威国际有限公司urce和Sink。

      • 配置HTTP接收器的外部URL,将发送来自Jenkins的CloudEvents。必威国际有限公司

      • 用户希望发送到接收器的事件的选择(构建开始、构建-构建、构建-完成)。

    • 在Jenkins服务必威国际有限公司器上监听Jenkins事件,并将事件数据包装到与cloudevent兼容的规范中,通过HTTP发送到Sink。

  2. 必威国际有限公司詹金斯的洗涤槽

    • 实现与Jenkins对象(作业、项目、队列)相关联的RootAction。必威国际有限公司Action的URL将接收带有CloudEvents有效负载的HTTP请求。

    • 遍历接收到的请求,并提取数据,这些数据将决定Jenkins中的下一个操作。必威国际有限公司

    • 在Jenkins服务器内触发下一个操作。必威国际有限公司例如,根据来自Debezium的数据更改事件构建项目#5

  3. 文档和测试

    • 每个阶段都有严格的测试和文档记录。

类似Jenkin必威国际有限公司s插件供参考:

闲谈,聊天

我们使用# gsoc - 20必威国际有限公司21 -詹金斯cloudevents插件通道中的CDF Slack工作区。如何加入CDF Slack

办公时间

CloudEvents插件团体会议每年举行一次周一13:00 UTC

缩放链接:https://cloudbees.zoom.us/j/94985456924(ID: 94985456924,密码:167462)

链接

Baidu