Blue Ocean is the next generation user experience for Jenkins. You can learn more about its features and roadmap on the Blue Ocean project website.
Blue Ocean is available from the Jenkins update center for Jenkins 2.7.1 and above.
It is a multi-module maven project made up of a few Jenkins plugins. There is an aggregator plugin in the "blueocean" module.
CONTRIBUTIONS ALWAYS WELCOME NO MATTER HOW BIG OR SMALL.
Some background reading: https://jenkins.io/blog/2016/05/26/introducing-blue-ocean/
This is in the main Update Center for Jenkins. Install the plugin called "BlueOcean beta" (and let it install its dependencies). The instructions here are for contributors to Blue Ocean and the morbidly curious. Expect refactoring.
A quick tour of some of the modules (not all). Consult README.md in respective modules for more info.
An aggregator plugin, making it an easy place from which to run Blue Ocean via
Java interfaces and classes that specify the definition of the REST API that blueocean uses. See the README.md within this module for detail on this api.
Provides the default implementation of the core REST Apis defined in the
blueocean-rest plugin. It comes with only freestyle job support.
Provides implementation of Pipeline apis for Jenkins pipeline and multi-branch job types support
you may want to install NodeJS, but it is not a requirement as the
frontend-maven-plugin will install
the correct version of Node locally for each plugin to build and develop with.
Builds all maven modules (run this the first time you check things out, at least)
$ mvn clean install
For now, you'll need to skip the tests if building on Windows, so be sure to include the
-DskipTests switch e.g.
$ mvn clean install -DskipTests
$ mvn -f blueocean/pom.xml hpi:run
Then open http://localhost:8080/jenkins/blue to start using Blue Ocean.
The Jenkins Classic UI exists side-by-side at its usual place at http://localhost:8080/jenkins.
and LESS files for all local plugins (including those linked with
hpi:hpl) where a
package.json is found
that contains a
mvnbuild script. If you would like to disable this behavior, you may set
the system property:
The obvious goal is for Blue Ocean to be runnable on all browsers on all platforms. We're not there yet, but getting closer. The ultimate goal will be to have browser support in line with the Jenkins Browser Compatibility Matrix.
List of browsers where we know Blue Ocean is not yet runnable:
Internet Explorer < 11 on Windows (the aim is to keep IE 11 working, but help is needed to maintain a Windows test environment in the pipeline)
Follow the steps above for getting it running first.
Look in following README's for:
blueocean-restfor how to navigate the rest api.
blueocean-dashboardguide on how to modify the GUI in the dashboard plugin.
blueocean-rest-implfor more details on how to actively develop this plugin for backend codebases.
The best way to get started is to look at the tutorial and Yeoman starter project here: https://www.npmjs.com/package/generator-blueocean-usain The usual plugin guide also applies for Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial#Plugintutorial-CreatingaNewPlugin
Ask for help in the gitter room or on the jenkins-ux google group if you are working on a plugin.
Maven is used for most building - install Maven and JDK8 (ideally).
As npm packages are used node-gyp may be involved and this can require some tools installed to build native dependencies (native components are not used at runtime) - see https://www.npmjs.com/package/node-gyp for instructions for your platform
NOTE: look in the README.md of the respective modules for more detailed dev docs.
npm installyou will have some copies of Node you can use without installing it globally on your system, e.g. from the repository root:
PATH=blueocean-web/node:$PATH npm <do-stuff>
npm install packageName@3.2.1 -S -E
npm install packageName@3.2.1 -D -E
npm uninstall packageName -S
npm uninstall packageName -D
npm shrinkwrap --devto ensure devDependencies are included in the shrinkwrap.
In case you want to update your dependencies with something like
npm-check-updates make sure you follow the simple steps:
ncu -a rm -rf node_modules npm-shrinkwrap.json npm i npm shrinkwrap --dev
blueocean/clone, first create the symlink:
jdoe@localhost> ln -s ../../bin/pre-commit.js .git/hooks/pre-commit
jdoe@localhost> file .git/hooks/pre-commit # => .git/hooks/pre-commit: a /usr/bin/env node script text executable, ASCII text
jdoe@localhost> .git/hooks/pre-commit # => No staged files to format.
We have full i18n support in our plugins. Please read the i18n documentation on how you can provide new translations and how to work with i18n.
Want to get involve with blueocean? See our contributing guidelines for more informations.
Automatically deploys changes to an instance of blueocean that is run with hpi:run.
You can chat to folks on #jenkins-ux on freenode (IRC). You can also email the jenkins-dev email list (google group: https://groups.google.com/forum/#!forum/jenkinsci-dev) - but ensure you use the prefix [Blue Ocean] in your subject line when posting.
Advanced front end development with react, redux and stuff by @scherler: https://docs.google.com/presentation/d/1dbaYTIGjGT9xX1JnWnaqjMumq94M9nGwljfMQaVtUFc/edit?usp=sharing
Watch @jenkinsci on Twitter for frequent updates and news.
If you wish to upgrade dependencies or test an upgrade to something like pipeline (as an example),
pom.xml in the root of the project should have all the versions specified, a pull request to validate the changes is appreciated.
If you wanted to see if a new version of a library works with blue ocean:
pom.xmlin the root of this project (beta dependencies are fine)
Once the PR is accepted, it will be in use on "dogfood" on ci.blueocean.io/blue - and thus it will be in day to day use almost immediately. If it does bad things, expect to hear about it.
Gitter is the day to day chat venue used, you can log in with your github identity.
The Acceptance test suite is located here: accpetance-tests
When the ATH passes and there is a consensus that a release can be performed:
mvn clean -DcleanNode install -DskipTestsonce to clear the decks if you are working on other branches
$ mvn release:prepare -DautoVersionSubmodules=true $ mvn release:perform
This will take a while to build and upload.
It will take a few hours to propagate to UC.