Jenkins 2.0


Recently maintainers of Jenkins - the leading and most popular open source automation server - announced that long awaited version 2.0 is available to download and additionally it is marked as a beta release. It means that they’re still recommending current LTS version for a production deployments, but new version is coming really soon.

So let’s look what it offers!

What’s new?

Improved usability (aka “New UI”)

That is probably the most single awaited feature in Jenkins community. It means a lot for both, power users and newcomers. A lot of feedback was taken into account when preparing that feature. Old pages (e.g. Create Item or Job Configuration) look really clean and modern (we finally have tabs in Job Configuration page), new views like Pipeline Stage view (we will describe whole feature in the next section) look even more awesome:

Jenkins 2.0 - Pipeline Stage view

But that’s not the end of goodies from that release.

Delivery pipelines

Finally Jenkins will be packaged with built-in delivery pipelines feature. It means that it will not require anymore plugins for doing that. It brings finally support for Jenkinsfile - concept which allows to codify your pipelines, and store it inside version control (either together with application source code or outside, in one of your supporting repositories). Besides that - finally no more XML fiddling when it comes to job configuration, because it will use a nice DSL:

node {
  git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git'

  def mvnHome = tool 'M3'
  sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"

  step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
  step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])

That is a well known concept, similar to the job DSL plugin. But finally, it will be built-in and ready to use right after installation, without any additional effort.

Full backward compatibility

That is the most important thing - adding new stuff and improvements in UI means a lot for new users, but having those things and being fully backward compatible is a huge deal for people that are using Jenkins in production right now. As documentation states:

Jenkins 2.0 is a drop-in replacement of the Jenkins 1.x series of releases and fully backward compatible. There is practically no reason not to upgrade once 2.0 is released.

If that goal will be achieved, it is a huge thing.

How to play with it?

The easiest way to play with new Jenkins, will be to use prepared packages from the aforementioned page. Maintainers prepared installers for almost all platforms. Of course there is also a standard WAR distribution available there.

But there is even a simpler way to play with it for a Linux user. If you already have docker configured, you can spin it up with one command:

~ $ docker run --name jenkins2 -p 8080:8080 -d jenkinsci/jenkins:2.0-beta-1

And that’s it! When that command will finish, on your local 8080 port there will be Jenkins 2.0 waiting for you to configure and play with it. And last but not least - if you have any feedback related with new version, official page contains guides how to do it. Community will be grateful!