Jenkins : Multijob Plugin (tikal-multijob-plugin)

Found a bug ? require a new feature ?

          Feel free to open an issue: https://github.com/jenkinsci/tikal-multijob-plugin/issues


Plugin Information

View Multijob on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin, created by Tikal DevOps team, gives the option to define complex and hierarchical jobs structure in Jenkins.

When to use it

  • If you'd like to stop the mess with downstream / upstream jobs chains definitions
  • When you want to add full hierarchy of Jenkins jobs that will be executed in sequence or in parallel
  • Add context to your build-flow implementing parameter inheritance from the MultiJob to all its Phases and Jobs. Phases are sequential, whilst jobs inside each Phase are parallel

How to use it

After installing this plugin you will be able to do the following:

  •  When creating new Jenkins jobs you will have an option to create MultiJob project.
  •  In the build section, this job can define phases that contain one or more jobs.
  •  All jobs that belong to one phase will be executed in parallel (if there are enough executors on the node)
  •  All jobs in phase 2 will be executed only after the jobs in phase 1 are completed etc.

Phases are used to execute many jobs in parallel, whilst Phases are sequential.

For example, you can have a common complement in phase 1, dependent components in phase 2, a deployment in phase 3 and so on and so forth.

Example plugin configuration

For example, we create a MultiJob project called jenkins-multijob-inherent that contains 3 multijob phases: 

This job manages the building and deployment of the Tikal multijob plugin at phase 1.

Afterwards, it downloads the snapshot version of Jenkins and packs it again with Tikal multijob plugin that was created at phase 1.

Finally, at phase 3, it deploys the Jenkins together with the multijob plugin to a deployment machine and executes selenium tests, to check the product and shutdown Jenkins.

MultiJob Phases definition screenshot:

You can also see an hierarchical view of the multijob project:

Since version 1.11:

1. control build success criteria based on job status:

2. Disable a job within a phase - the use case is when you want to exclude a specific job from executing during a specific execution (well, if you wanted to remove completely -> you would just remove it...). 

#UseCases

* Configure multiple SCM's in parent job for multiple change polling - to be continued 

Version History

1.32 (Dec 26, 2018) 

1.31 (Aug 1, 2018) 

  • JENKINS-31643: fix for NullPointerException

  • Fix/Upgrade Build State

1.30 (May 1, 2018) 

  • Fixing a bug that was retrying twice the number specified for maxretries field.

1.29 (Mar. 1, 2018) 

  • [JENKINS-49328] Prevent inappropriate serialization of MultiJobBuildSubBuild.build.

1.28 (Sep. 1, 2017) 

  • Revert "[JENKINS-38850] - Add migration logic for actions loaded from the disk"
  • Add MultiJobOverview lastSuccess and lastFailure functionality for same job multiple times in same Multijob

  • Add Alias to Console output of Multijobs; Fix Alias NullPointerException problems

  • Added Alias for Subjobs in MultijobViews (partly)
  • Started Adding MultiJobBuild View Recursive Multijob table
  • Added Alias for Subjobs in MultijobViews (partly)

1.27 (Aug. 4, 2017) 

  • Fix resume job permission issue.

1.26 (Jul. 8, 2017) 

1.25 (June 13, 2017)

  • JENKINS-38850 - Multijob runs one parameterized child job instead of running multiple child jobs with different parameters Resolved  

1.24 (Mar. 15, 2017) 

  • Introducing Vizsla
  • Fix issue JENKINS-37351
  • Add BuildOn column to MultiJob view
  • Reshape MultiJob specific configuration

1.23 (Oct. 9, 2016) 

  • Rollback eztemplate support sue to No Class found errors - resolved JENKINS-37300

1.22 (Aug. 9, 2016) 

1.18 (Sep. 9, 2015)

  • Fix NPE introduced in 1.17

1.17 (Sep. 7, 2015)

  • TO BE CONTINUED ...
  • Fix the MULTIJOB accumulation logic - thanks to rrialq
  • Re arranging column, in same as viewed with Jenkins - thanks to Arpit Nagar
  • Added phase variables - thanks to rrialq more info here
  • Apply the BuildFilter to the MultiJobBuildSelector - thanks to sschuberth
  • Integration with Copy Artifact Plugin -> the Copy Artifact Plugin look for an artifact from that job's build which was part of the current MultiJobBuild more info here - thanks to rsennewald
  • Avoid checking sub-jobs when sub-job is triggered anyway ... - thanks to rrialq
  • Fix the polling method, making it more Jenkins API - friendly - thanks to rrialq

1.16 (Dec 4, 2014)

  • Add support for relative paths with the Cloudbees Folder plugin - a pull request we had to merge into the new code line many thanks to: imakowski
  • Fix JENKINS-25636 - multijob does not finish if phase contains same job multiple times

1.15 (Nov. 6, 2014)

1.14 (Nov. 3, 2014)

1.13 (Mar. 1, 2014)

  • Fix JENKINS-21649 & JENKINS-21798 - high CPU usage since 1.11 -> special thanks to Nicolas Morey-Chaisemartin
  • Add "Disable Project" button to MultiJob view

1.12 (Feb. 9, 2014)

1.11 (Jan. 26, 2014)

  • Support the ability to determine the Multijob state based on a failure of one of the jobs in that phase (see screenshot above)
  • Fixed JENKINS-21713 - "MultiJob Plugin does continue phase before current phase succeeded"MultiJob Plugin does continue phase before current phase succeeded
  • Support the ability to disable a certain job (useful when you want to disable a certain job just in a specific execution)
  • UI improvements in - fix MultiJob display during execution
  • Some internal / implementation improvementsSupport the ability to determine the Multijob state based on a failure of one of the jobs in that phase (see screenshot above)

1.10 (Oct. 5, 2013)

  • Fixed JENKINS-17576 - Conditional buildstep unable to launch MultiJob :: thanks  imod[Dominik Bartholdi] community contributor
  • Fixed JENKINS-16870 - Jenkins cant display multijob view graphically if the multijob phase is wrapped in a conditional buildstep & again thanks  imod[Dominik Bartholdi] community contributer
  • Fixed JENKINS-19015 - Multijob plugin throws CancellationException
  • Fixed JENKINS-18611 - Sometimes multijob is set as succeeded without running any downstream jobs when running in parallel - added a warning in the log for parallel job execution [ in red ... ]
  • Fixed JENKINS-17810 - Multijob hierarchy is not shown when jobs inside of the phases are "Monitor an external job" - Fixed
  • Fixed JENKINS-18571 - clicking on build now button fires build twice for specific jobs - Fixed
  • Fixed JENKINS-18361 - Provide build report API support- Issue fixed by dkichler [Dave Kichler] community contributor

    We were holding back the 1.10 release for a new feature which although the long wait didn't make it into 1.10 we hope to release multi-scm support in the 1.11 release - sorry for the long delay on this, we learned it is a bigger effort than we anticipated ...

1.9 (Apr. 11, 2013)

  • Fixed JENKINS-15648 - Multi Job plugins stops when sub job fails or aborted also when the "Mark phase as successful" is set as always continue 
  • Fixed JENKINS-17068 - Subprojects aren't stop when stopping multijob project
  • Fixed JENKINS-17070 - Missing times with multiconfiguration projects
  • Fixed JENKINS-17254 - Multijob view last succes / last failure columns shows status instead of #of days/hours since
  • Fixed JENKINS-17284 - Jenkins cant display multijob view graphically if a job in phase not exists 
  • Fixed JENKINS-17153 - Dependency on parameterized-trigger should not be optional?
  • Fixed JENKINS-16048 - MultiJob Detailed Table is missing when non valid MultiJob phase exits
  • Fixed JENKINS-14604 / JENKINS-13078 - Multijob Plugin looses a hierarchical view at the multijob project page when it has upstream project(s)
  • Fixed JENKINS-17535 - Provide env vars detailing triggered builds (thanks Kiall Mac Innes)

1.6 & 1.7 (Nov. 9, 2012)

1.5 (Aug 4, 2012)

1.4

  • Untracked bug fixes
  • Fix for display in console and first fallback for job status [ thanks to: Andreas Kuhtz ]

1.2 & 1.3

  • Fixed location of balls [ thanks to: Andreas Kuhtz ] in MultiJob view
  • Fixed Delete/Rename of subjob

1.1

1.0

  • Initial release

Attachments:

Untitled.png (image/png)
choose phase failure strategy.png (image/png)
disbale_job_inphase.png (image/png)
1.png (image/png)
2.png (image/png)
111.jpg (image/jpeg)
mj1.png (image/png)
mj2.png (image/png)
mj3.png (image/png)
2014-12-03 11.16.52 am.png (image/png)
2014-12-03 11.17.11 am.png (image/png)
2014-12-03 11.17.52 am.png (image/png)
test_Config__Jenkins_.png (image/png)
mj1.png (image/png)
mj2.png (image/png)
2014-12-03 01.22.59 pm.png (image/png)
image2017-6-21 13:48:14.png (image/png)
image2017-6-21 13:48:48.png (image/png)
config.xml (text/xml)
Untitled.png (image/png)
config.xml (text/xml)
config.xml (text/xml)
image2018-2-14 13:20:18.png (image/png)
image2018-2-14 13:27:42.png (image/png)
image2018-2-14 13:28:54.png (image/png)
image2018-2-14 13:30:41.png (image/png)
image2018-2-14 13:34:38.png (image/png)