webMethods.io API Gateway - CI/CD Devops

1. Introduction

This article explains CI/CD with different toolchains and importantly different use cases - covering deployments, configurations, and assets propagation across different environments in webMethods.io API gateway.

2. What is CI/CD? 

  • Continuous Integration - Every change is validated automatically
  • Continuous Delivery - Every promotion is automated to higher stages 
  • Continuous Deployment - Every promotion (including configuration changes) to production is automated

For more details on CI/CD please go through https://techcommunity.softwareag.com/techniques-blog/-/blogs/continuous-integration-using-webmethods

3. Pre-Requisites

4. CI/CD with API Gateway

4.1 Push asset to Azure DevOps Repository

Login to source API gateway and click on API’s and select the API’s you want to export and say Export ...

Check-in exported API to Azure DevOps repository by clicking on Repos and Upload files.

Click Browse-> select the exported zip file and select the branch as master and commit.

4.2 Pull assets from the repository

Azure DevOps repo is very likely to be private. Unless you have a public repo, you should provide the credentials to access the repository.

If you do not have one or don’t remember the credentials, go to your Azure Repos and select the Clone option. Select Generate Credentials

Copy the URL, username, and password.

Configure the Jenkins pipeline job to check out from Azure DevOps repository.

4.3    Deploy to Target Environment

Checkout the cicd-cli developed for API gateway by running the following command. (local workspace)

npm i apigw-cicd-cli

Open the config.json file and update the target environment details:

"url": "{tenant-URL}/ rest/apigateway/archive?",
"username": "user",
"password": "pass"

Export the API’s in target environment by using the below Jenkins pipeline job.

Once the job finishes successfully, you can see the API’s in the target environment.

Hi Bharath Meka,

Can I get full pipeline script for deploy to target environment.