Extending Blue Ocean

This section is a work in progress. Want to help? Check out the jenkinsci-docs mailing list. For other ways to contribute to the Jenkins project, see this page about participating and contributing.

The Blue Ocean plugin for Jenkins is designed to be extended by other plugins. Like many other plugins, Blue Ocean has its own extension points.

Blue Ocean is a single-page application which has different aspects of the application contributed by purpose-specific plugins, such as the Dashboard for Blue Ocean or i18n for Blue Ocean plugins.

The main difference for Blue Ocean is that front end aspects of the plugin use a lot of JavaScript, with JavaScript specific extension points.

Blue Ocean plugins are still just Jenkins plugins, delivered via the normal means, they just have the option of including JavaScript.

As Blue Ocean is still new, the extensibility aspects of JavaScript development are still evolving.

If you wish to make a plugin for blue ocean, some starting points:

  • Introduce yourself to the gitter chat room. This is often the best place to start. There are many people there to help you get going.

  • Contact the groups.google.com/forum/#!forum/jenkinsci-ux[jenkins-ux mailing list] (things move fast, ask someone for help)

  • Read the README with pointers on plugin development

  • Get familiar with regular Jenkins plugin development (at least a very simple plugin)

  • Read up a little on ReactJS (not necessary but doesn’t hurt)

  • Take a look at the Blue Ocean plugin generator utility

  • Take a look at a real plugin (non trivial) - github.com/jenkinsci/blueocean-pipeline-editor-plugin[the visual pipeline editor].

For those with a more graphical focus, you will want to take a look at the Jenkins Design Language repository.

References