Combined scenario
The two pipelines making up the combined scenario are stored in the same Shared Library and use the same principles and same configuration files. They implement two steps in a larger process and get called by a single script executing either of them based on the stage in the process.
Calling script Mainframe_Combined_Pipeline
The Jenkins job is configured to use the initial script
Mainframe_Combined_Pipeline.jenkinsfile
from src/Jenkiksfile
folder in the Git underlying the Shared Library, similar to the loading the script from GitHub for the basic pipeline.
The code will determine the Code Pipeline operation triggering the pipeline from the ISPW_Operation
parameter, which gets its value from the webhook via the $$operation$$
parameter. Based on the value of ISPW_Operation
it will:
- call/execute
Mainframe_Generate_Pipeline
if the value is'Generate'
- call/execute
Mainframe_Generate_Pipeline
if the value is'Promote'
- stop execution, if the value is none of the above
@Library('Shared_Lib@master') _
def parmMap = [
...
]
switch(ISPW_Operation) {
case 'Generate':
currentBuild.displayName = BUILD_NUMBER + ": Code Generation"
Mainframe_Generate_Pipeline(parmMap)
break;
case 'Promote':
currentBuild.displayName = BUILD_NUMBER + ": Code Promotion"
Mainframe_Integration_Pipeline(parmMap)
break;
default:
echo "Unsupported operation " + ISPW_Operation
echo "Review your Webhook settings"
break;
}
The parmMap
is the same Map
of parameters used for the simple Shared Library example.
Setting the currentBuild.displaName
property allows distinguishing the different operations the pipeline job is executed for:
Mainframe_Generate_Pipeline
This
pipeline
is supposed to be executed every time (COBOL) components get generated
within Code Pipeline. It will:
- download those COBOL components that are part of the set resulting from the generate
- retrieve Total Test tests from a GitHub repository for the corresponding stream and application
- execute those virtualized test scenarios that correspond to the downloaded components
- retrieve the Code Coverage results from the Code Coverage repository
- send sources, test results and coverage metrics to SonarQube
- query the results of the corresponding SonarQube quality gate
- send a mail message to the owner of the set, informing them of the status of the quality gate
Mainframe_Integration_Pipeline
This
pipeline
is supposed to be executed every time (COBOL) components get promoted
within Code Pipeline. It will:
- download those COBOL components that are part of the assignment, for which the promote was executed
- retrieve Total Test tests from the same GitHub repository for the corresponding stream and application
- execute all non virtualized test scenarios
- send sources and test results SonarQube
- query the results of the corresponding SonarQube quality gate
- if the quality gate was passed, it will trigger an XLRelease release template to orchestrate the following CD process
- send a mail message to the owner of the set informing them of the status of the quality gate
Comments
Log in or register to comment.