Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 31 Next »

This plugin adds additional project types that create sub-projects for each branch using a shared configuration.

Plugin Information

View Multi-Branch Project Plugin (DEPRECATED) on the plugin site for more information.

Table of Contents

Background

This plugin is in its infancy stages. It was designed with simplicity in mind, so you may find that it is not feature-rich. The goal right now is to maintain a production-ready plugin and gather bug reports and new feature requests from the community. Please feel free to open an issue in the GitHub project.

Currently, the plugin offers a single new project type whose configuration mimics that of a standard free-style project. The only difference is that the SCM configuration section utilizes the SCM API Plugin (and so the options may seem somewhat limited compared to the usual SCM options). The project will use this SCM to automatically poll for a list of current branches and sync all the configuration to sub-projects. Each branch has its own sub-project. Sub-projects are just like normal projects, except they can't be configured directly and they are listed on the main (parent) project's page.

Available SCMs

Any SCM plugin that has an implementation that extends the below class from the SCM API Plugin will be available:

jenkins.scm.api.SCMSource

Known implementations:

Screenshot - Project Page

Gotchas

  • Depending on the SCM implementation you're using, the branch includes/excludes may or may not work. As of writing, the Git Plugin has configuration fields for includes/excludes, but they are not functional. This commit (currently in 2.3-beta-1) adds the missing functionality. Other SCMs have not been verified (feel free to update this page if you find that SVN or Hg are working or not working).
  • If a branch is deleted from your SCM, or the SCM includes/excludes are modified to remove a branch, the project will always remove that branch's sub-project. If retaining build history for old branches is important to you, you may not want to use this plugin (yet!) since you'll lose that history as soon as the project polls for the branch list.
  • In normal project views, some/most List View columns will not work for this project type.  However, List View columns should work properly in the sub-project list for branches.
  • This project type should be compatible with plugins that you'd see in normal free-style projects, but compatibility can't be guaranteed.  Feel free to open an issue in the GitHub project with your list of installed plugins, your configuration, and any relevant errors or logs.

Change Log

v0.4 - Dec 2, 2015

  • Fix #37: Add a option for triggering build for new branches (thanks to Hiroyuki Wada)
  • Update SCM API Plugin dependency to 1.0
  • Remove 0.1.x -> 0.2+ branch project migration code
  • Update Maven Plugin dependency to 2.12.1 (thanks to Robin Müller)
  • Use encoded branch names for both filesystem name and project name (real branch name set in display name)
    • Fix #23: View column links are broken for branch names with slashes
    • Fix #50: Using jenkins.model.Jenkins#getItemByFullName API with slashes in name does not work
    • Fix #76: Branch with slashes and links from project page
    • Fix #114: Unable to trigger downstream multi-branch jobs with slash in name
  • Refactor to use ComputedFolder API
    • Add Folders Plugin as a dependency
    • Update core dependency to 1.609.1 (highest common denominator, matches Folders Plugin)
    • Fix #44 (part 1): Unable to rename multi-branch projects
    • Fix #61: Jenkins GUI gets incredibly slow when saving a multi-branch project with many branches
    • Fix #94: Enable a project after restart not working
  • Fix #44 (part 2): Clone/copy template project when parent is copied

v0.3 - Aug 30, 2015

  • Refactored AbstractMultiBranchProject to inherit from AbstractItem
    • Fix #85: Sync branches not working in Jenkins 1.621+
    • Fix #53: NPE with EmailExt plugin
  • Fix #89: Add new Maven Multi-Branch Project type
  • Fix #87: "Could not access hudson.model.JDK.DEFAULT_NAME" JellyTagException
  • Fix #54: Bubble build status up to host project view

v0.2.4 - Aug 5, 2015

  • Fix JellyTagException on sync branches log in Jenkins 1.621+

v0.2.3 - Jul 7, 2015

  • Fix issue with custom workspace configuration field in newer versions of Jenkins
  • Fix deadlocks (thanks to Greg Opaczewski)
  • Add some Japanese localization (thanks to mallowlabs)

v0.2.2 - Apr 14, 2015

  • Fix exception on configuration page (No page found 'configure-branch-entries.jelly')

v0.2.1 - Apr 13, 2015

  • Fix regression with ${JOB_URL}/syncBranches

v0.2 - Apr 13, 2015

  • Back from the dead!
  • Heavy refactoring that abstracts much of the multi-branch functionality.
    • Set custom workspace now available
    • Template for sub-projects can now be configured via API at ${JOB_UR\L}/template/config.xml
  • Display warning on configuration page when no compatible SCMs are available.
  • Fixes exception java.lang.NoSuchMethodException: hudson.model.AbstractProject.convertUpstreamBuildTrigger(java.util.Set)

v0.1.3 - Oct 30, 2014

  • Add ability to trigger branch sync via URL with option to allow it anonymously (thanks to Manuel Durán Aguete for the initial commit).

v0.1.2 - Aug 29, 2014

  • Fix project-level permissions when using the "Project-based Matrix Authorization Strategy" security option.

v0.1.1 - Aug 13, 2014

  • Fix configuration issue when restricting project runs to master.

v0.1 - Aug 12, 2014

  • Initial Release
  • No labels