In this document, we will demonstrate how to leverage the IICS Asset Management CLI v2 utility to integrate your Informatica Intelligent Cloud Services development environment with Version Control System (VCS) and perform Continuous Integration (CI). Continuous Integration (CI) is a development practice where developers integrate code into a shared repository frequently, preferably several times a day. Each integration can then be verified by an automated build and automated tests.
We will demonstrate how one can:
- List IICS assets from the IICS environment based on query filters
- Export these assets into a single ZIP file
- Extract these assets into IICS-like Project/folder hierarchy
- Checkin (Push) to Version Control System (Git in this example)
for performing automated backups of versions, a CI activity. The same techniques can be used to package deployments to test and pre-production environments also.
The utility is available for various operating system of your choice and is broadly applicable to all IICS services. You may also want to refer IICS Asset Management CLI V2 Utility: Command Reference Guide to the utility to know more options available with the utility.
Please refer Automated Deployment of IICS assets - Continuous Integration using the IICS Asset Management CLI and Jenkins Pipeline to know more about how one can use IICS Asset Management CLI v2 along with Jenkins Pipeline to perform:
- Checkout assets from the Git repository
- Package them into a single export ZIP file that is compliant with IICS export format
- Import the assets into IICS
- Publish these assets (wherever applicable e.g. Taskflows, Cloud Application Integration Process/Guides/Connection/Service Connectors)
This video demonstrates how to use the IICS Asset Management CLI v2 in a Jenkins Pipeline to perform Continuous Integration.
Do you want to try this for yourself?
After watching the video, I am sure you would be excited to try this out yourself. Why not?
Please follow below steps and create your own version of CI/CD.
Setup Jenkins Pipeline
Prerequisite: You need to have access to Jenkins server.
Create a new Jenkins Pipeline and give it an appropriate name.
Note: You may want to reuse the Title "Backup assets tagged by release to Git" and Description "In this Project, user will provide the user details of the org, tag that is used to tag the assets and the Git access details. With this information, this pipeline will read the list of assets based on the provided tag, from the org for which details are provided, export them and extract into the right file structure and backup them in the Git repository." for the attached script as Title and description for your script as well.
Setup Integration between Jenkins and Git
You will need to perform below steps to ensure that Jenkins is able to access Git repository:
- Download Git command line and set it up on the machine where Jenkins is running
- Put the git.exe in the SYSTEM PATH e.g if git.exe is in C:\Program Files\Git\cmd, you need to put C:\Program Files\Git\cmd in the PATH
- Go to Jenkins -> Manage Jenkins -> Global Tool Configuration and enter Path to Git executable to git.exe as shown below.
- Restart Jenkins Service
- Use SSH Git repository access. You will need to use this URL while trying to access Git repository from Jenkins
- Configure the Jenkins Service to run with the user account, copy this private key into C:\Users\<username> as id_rsa and restart Jenkins
Download the Pipeline script
Sample Jenkins Pipeline script is attached. Please copy this under the Pipeline section:
Setting up the Input Parameters
As you would have noticed, this script need user inputs.
Please edit the Pipeline and mark this Project as Parameterized.
Please setup below inputs:
- Choice Parameter: SourceDetails - Which environment do you need to access the assets from?
- Choice Parameter: GitStore - Which Git repository you want to use for Version Control?
- String Parameter: ReleaseVersion - What is your (release) filter criteria for the assets that need to be version Controlled?
- String Parameter: GitWorkspace - What is your local Git Workspace where the assets be persisted locally?
- You will need to create Credentials in Jenkins through Jenkins -> Credentials to ensure that the authentication details are secure and not exposed to the user looking at logs. We need to define four Credentials (used in the sample script)
- jenkins_ssh_key: This is needed to ensure that Git is able to access the Jenkins server running on a local machine using private key.
- prod_login: This is needed to login to Production environment and export / import assets.
- dev_login: This is needed to login to Development environment and export / import assets.
- qa_login: This is needed to login to QA environment and export / import assets.
- In addition, you will also need to modify the script:
- utilHome: This should be set to the directory where the asset management CLI v2 iics.exe is downloaded
- exportZIP: Create this directory under utilHome. This is where the assets would be exported
Execute the pipeline
To execute the pipeline, just execute the Project with "Build with Parameters" and provide user inputs.
You should be able to see the status of execution in various stages as given below:
In case of failures (or otherwise), you can look at logs for each stage of execution.