Toolchain

Basic Continuous Integration (CI) Scenario

The examples of Jenkins pipelines make use of Compuware's and other plugins to implement the following process and scenario. They can be used to create a standardized approach for implementing a CI process for mainframe development. The scenario(s) and code are based on request and requirements from customers who already have started implementing their own pipeline and asked Compuware for advice. The code itself shows our solution to these, while the respective solutions as implemented by our customers are - in parts considerably - different.

The code reflects common patterns that we see emerging at different customers. In addition, the examples are supposed to help mainframe developers to familiarize with Groovy and its concepts, as well as demonstrate some of the idiosyncrasies of the Jenkins Groovy dialect that we stumbled across.

Step 1 - Checking out Code

In Topaz a developer checks out a set of sources, copybooks and other components required to fulfill a specific requirement.

Step 2 - Creating/Maintaining Unit Tests

In Topaz Topaz for Total Test the developer creates or modifies a set of unit tests for the modified programs. In order to share the unit tests between development teams and to use them in Jenkins, the Topaz for Total Test projects are stored and administered using Git/GitHub.

Step 3 - Code Promotion

In Topaz once the developer has finished working on the code, they promote their changes from the DEV1 level to QA1, the next level in the application's life cycle.

Step 4 - ISPW Webhook trigger

Automatically in ISPW the promotion of from the DEV1 level to the QA1 level in ISPW creates an ISPW a set containing all components that are part of this specific promotion. Once the promotion completes, ISPW triggers a Jenkins job that executes a series of automated steps. The Jenkins job is triggered via an Webhook. The webhook also passes the Parameters to the Jenkins job to control the execution.

Step 5 - Jenkins Job

Automatically in Jenkins one of the below pipelines executes.