Configuring a Pipeline from a Shared Library
Setting up the pipeline job
The job itself is defined via the usual way of creating a new pipeline job. It is important to make sure that the resulting job uses parameters by checking the This project is parameterized
box.
Defining parameters
Successively add the following string parameters.
The parameters in this first set are specific to the individual execution of the pipeline and get passed by the ISPW Webhook.
Name | Description |
---|---|
ISPW_Stream | ISPW Stream Name |
ISPW_Application | ISPW Application |
ISPW_Release | ISPW Release Name |
ISPW_Assignment | ISPW Assignment Name |
ISPW_Src_Level | ISPW Level the promote has been started from |
ISPW_Owner | ISPW Owner User ID |
Executing a Shared Library script
To tell Jenkins to execute a pipeline from a shared library, you need to add code like the following to the Pipeline script definition:
Note
Alternatively, you may place the code below in a separate .jenkinsfile
and load this from a Git repository.
The example uses
@Library('RNU_Shared_Lib@JenkinsFTS') _
Mainframe_CI_Pipeline_from_Shared_Lib(
ispwStream: ISPW_Stream,
ispwApplication: ISPW_Application,
ispwRelease: ISPW_Release,
ispwAssignment: ISPW_Assignment,
ispwSrcLevel: ISPW_Src_Level,
ispwOwner: ISPW_Owner,
cesToken: 'xxxx',
jenkinsCesToken: 'xxxx',
hciConnectionId: 'xxxx',
hciToken: 'xxxx',
ccRepository: 'xxxx',
gitProject: 'xxxx',
gitCredentials: 'xxxx'
) )
where
@Library('RNU_Shared_Lib@JenkinsFTS') _
refers to the name of a Shared Library, with@JenkinsFTS
in this example referring to theJenkinsFTS
branch of the underlying Git repository. The trailing_
is required by Jenkins.Mainframe_CI_Pipeline_from_Shared_Lib
refers to the name of the.groovy
file in thevars
folder of the GitHub repository, containing the pipeline code- Within the brackets
(...)
parameters are passed to the pipeline script.Mainframe_CI_Pipeline_from_Shared_Lib
expects agroovy
Map
(opens new window), containing the followingkey:value
pairs.
The parameters in this first set are specific to the individual execution of the pipeline. They correspond to the parameters defined in the pipeline configuration above and take the values from these pipeline parameters.
Key | Value | Description |
---|---|---|
ispwStream | ISPW_Stream | The ISPW_Stream parameter from the pipeline configuration above |
ispwApplication | ISPW_Application | The ISPW_Application parameter from the pipeline configuration above |
ispwRelease | ISPW_Release | The ISPW_Release parameter from the pipeline configuration above |
ispwAssignment | ISPW_Assignment | The ISPW_Assignment parameter from the pipeline configuration above |
ispwSrcLevel | ISPW_Src_Level | The ISPW_Src_Level parameter from the pipeline configuration above |
ispwOwner | ISPW_Owner | The ISPW_Owner parameter from the pipeline configuration above |
The second set of parameters may be specific to individual jobs/pipelines using the same set of scripts. They reference tokens and other IDs that have been defined during the Jenkins configuration phase. To determine the appropriate values to use, refer to the description of the pipeline parameters.
Note
These parameters may be installation specific instead of specific to an individual job/pipeline definition. In that case, they also could be placed in a configuration file.
Key | Description |
---|---|
cesToken | CES Personal Access Token |
jenkinsCesToken | Jenkins Credentials ID for the CES Personal Access Token |
hciConnectionId | HCI Connection ID configured in the Compuware Common Configuration Plugin |
hciToken | The ID of the Jenkins Credential for the TSO ID that will used to execute the pipeline |
ccRepository | The Compuware Xpediter Code Coverage Repository that the Pipeline will use |
gitProject | Github project/user used to store the Topaz for Total Test Projects |
gitCredentials | Jenkins credentials for logging into git |