Reusable Continuous Integration Workflows for Improved Efficiency

Reusable continuous integration workflows can save time and money. We often get questions about the use of reusable workflows. OpenMake Meister supports the use of Reusable Workflows that can be nested for reuse. Reusable continuous integration workflows allows you to define a set of activities that can be re-used over by other Workflows. Workflows that have reuse allows for granular organization of functionality and a high level of re-usability.

Nested Vs. Reusable Workflows

A Reusable Workflow is defined in the same way as a Nested Workflow. The difference is in how they are used. A Reusable Workflow is a set of Workflow Activities that may be used in the same way by multiple Project Teams. A reusable continuous integration workflow minimizes work. You only need to fix the one reusable continuous integration workflow instead of updating several workflows across the continuous delivery pipeline. A nested workflow is one that is called by another workflow. Indeed the nested workflow may be a standard reusable workflow.

If you make a change in the Reusable Continuous integration workflow, any Workflow that is using that Reusable Workflow will get the new changes at execution. When running the Meister Workflow Monitor, you will see how each Workflow is called and in the correct order, and you will see each the execution of each workflow step.

Jenkins does not offer the ability to nest Workflows in this way. With Jenkins you must re-create the workflow for every team who needs it. Jenkins was not designed for large organizations with many teams. When you have defined a standard practice, you want to make sure everyone follows the practice. This is the purpose of reusable workflows. You can still use Jenkins, but allow it to call Meister for managing your build workflows. This way you are optimizing around Jenkins.

In order to use Reusable continuous integration Workflows the Environment Variable OMSUBMIT_MAX_USER_PROC must be set to a value of 3. This must be set in the shell that launches the omsubmit executable. For Example: OMSUBMIT_MAX_USER_PROC=3