CloudEvents plugin for Jenkins

Project goal: Build a plugin able to listen to and emit CloudEvents from Jenkins

Skills to study/improve: Java, Go, CloudEvents SDK, Networking

NOTE: This idea is published as a draft under active discussion, but it is confirmed in principle. It is FINE to apply to it. The scope and the suggested implementation may change significantly before the final version is published. Sections like quickstart guide and newbie-friendly issues may be also missing. As a contributor, you are welcome to request additional information and to join the discussions using channels linked on this page.

Details

Background

As the CI/CD world is moving more towards interoperability between multiple platforms, Jenkins should also be compatible with the same interoperability standards. Some of these standards with respect to communication between different CI/CD platforms are put forth by the CloudEvents specification. This spec outlines the structure of CloudEvents, which are produced or consumed by entities which support it, hence making those entities compatible with other CI/CD platforms which also support them allowing them to work together.

Jenkins currently does not support CloudEvents, making it hard for users to use it with other platforms which support them.

Project Details

This project idea proposes to implement a Jenkins plugin which extends the Jenkins to make CloudEvents both discoverable and subscribable. Users should be able to set a global configuration to allow users to subscribe and discover CloudEvents.

The project requires the student to start with plugin development from scratch and then work with understanding how to use the CloudEvents Java SDK to create and read events.

In the beginning, the student can work on understanding the Jenkins plugin development by writing code for creating a simple Build Step which creates a CloudEvent, and from there we can move to the GlobalPluginConfiguration on how Jenkins should listen to the CloudEvents.

There are many examples of such documentation on the web:

Quick-start

The project requires the student to start with plugin development from scratch and then work with understanding how to use the CloudEvents Java SDK to create and read events.

In the beginning, the student can work on understanding the Jenkins plugin development by writing code for creating a simple Build Step which creates a CloudEvent, and from there we can move to the GlobalPluginConfiguration on how Jenkins should listen to the CloudEvents.

Skills to improve/study

  • Java

  • Go

  • Networking

  • Jenkins

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2024 project ideas