Please use epic ticket for comments, feedbacks, etc.

Introduce a new subsystem in Jenkins that:

This is the key new feature that positions Jenkins for continuous delivery use cases and other more complex automations of today.

Overview

(This overview uses GitHub as an example although the system is extensible to allow implementations for other SCMs and repository hostings.)

  1. In this new subsystem, you first let Jenkins know where you host your source code repositories. You do this by creating a new special folder called "Organization Folder" and selecting "GitHub organization." This sets up a new smart folder.
  2. In one of the repository in the chosen org, create a Jenkinsfile that defines your pipeline (or just a build process to start with.) This file is actually a Pipeline script. See Pipeline tutorial for details.
  3. Jenkins will automatically recognize this branch and create appropriate jobs by itself.
  4. Everytime a new change is pushed to this branch, the branch is built and the commit status gets updated.
  5. When the branch is destroyed in the repository or if Jenkinsfile is removed, the corresponding job gets destroyed from Jenkins as well automatically.

In this use, there'll be a lot of Jenkinsfile in various branches & repositories. To keep them DRY, various mechanisms will be provided to promote reuse of Pipeline scripts, such as this.

For more details, see Unknown User (jglick)'s slides and video recording that talks about this feature (in particular, where the demo starts.) There's also docker-based demo that you can play with on your own.

Contents

Internals