APIGEE Azure CICD pipeline with maven Plugin

Hi All,

Can some one share me good article for creating Azure CICD pipeline for APIGEE hybrid deployment

Solved Solved
0 11 658
1 ACCEPTED SOLUTION

@Laxmman - Since you are using "apigee-poc" as the environment, make sure you update your pom to use that env name and also rename the directory under resources/edge/env to apigee-poc. Since there was no apigee-poc directory, the config plugin did not push the target server and since that was not configured, the deployment failed as the proxy uses the Target server. 

View solution in original post

11 REPLIES 11

This article discusses Azure DevOps for Apigee Edge (not Hybrid), but you may still find it useful as a reference.

This GitHub repo is an implementation of a CI/CD pipeline for Apigee using Azure Pipeline and the Apigee Deploy Maven Plugin, with config instructions for Apigee hybrid / Apigee X.

Hi Mark,

while executing this pom file i am getting below error.

org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] 'build.plugins.plugin.version' for io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin must be a valid version but is '${apigee.plugin.version}'. @ line 357, column 14

Hi @Laxmman - Take a look at this repo.

This is a personal repo I use to try out the CI/CD for Apigee proxy using Azure DevOps

Hi @ssvaidyanathan , i tried with your solution and update pom.xml file with required details but while executing mvn install in local machine, i am getting below mentioned error.

 

"error": {
"code": 400,
"message": "deployment validations failed",
"status": "FAILED_PRECONDITION",
"details": [
{
"@type": "type.googleapis.com/google.rpc.PreconditionFailure",
"violations": [
{
"type": "MISSING_DEPENDENCY",
"subject": "organizations/xxxxx/environments/apigee-poc/targetservers/currencyTarget",
"description": "Required HTTP target server \"currencyTarget\" does not exist."
}
]
},
{
"@type": "type.googleapis.com/google.rpc.RequestInfo",
"requestId": "xxxxxx"  

@Laxmman - Since you are using "apigee-poc" as the environment, make sure you update your pom to use that env name and also rename the directory under resources/edge/env to apigee-poc. Since there was no apigee-poc directory, the config plugin did not push the target server and since that was not configured, the deployment failed as the proxy uses the Target server. 

Thanks @ssvaidyanathan it is worked

@ssvaidyanathan  while executing  npm run lint command, I am getting below error. Do i need to add eslintrc-jsc.yml file in our source code?

 

 currency-v1@1.0.0 lint /home/vsts/work/1/s
2022-09-06T16:12:52.6134636Z > npm run apigeelint && npm run eslint
2022-09-06T16:12:52.6134770Z 
2022-09-06T16:12:52.6134843Z 
2022-09-06T16:12:52.6135241Z > currency-v1@1.0.0 apigeelint /home/vsts/work/1/s
2022-09-06T16:12:52.6136009Z > mkdir -p code_test_output; apigeelint -s apiproxy -e PO013,PO025 -f html.js  > code_test_output/apigeelint-output.html
2022-09-06T16:12:52.6136290Z 
2022-09-06T16:12:52.6136367Z 
2022-09-06T16:12:52.6136768Z > currency-v1@1.0.0 eslint /home/vsts/work/1/s
2022-09-06T16:12:52.6137438Z > mkdir -p code_test_output; eslint -c .eslintrc-jsc.yml --format html ./apiproxy/resources/jsc > code_test_output/eslint-output.html
2022-09-06T16:12:52.6137816Z 
2022-09-06T16:12:52.6137907Z 
2022-09-06T16:12:52.6138153Z Oops! Something went wrong! :(
2022-09-06T16:12:52.6138292Z 
2022-09-06T16:12:52.6138498Z ESLint: 7.32.0
2022-09-06T16:12:52.6138606Z 
2022-09-06T16:12:52.6139048Z Error: Cannot read config file: /home/vsts/work/1/s/.eslintrc-jsc.yml
2022-09-06T16:12:52.6140168Z Error: ENOENT: no such file or directory, open '/home/vsts/work/1/s/.eslintrc-jsc.yml'

 

@Laxmman - just added the eslint files to the repo. You can update it or remove it from the package.json if you want. 

Pls bear in mind, this is just a sample. I might have more than what you need. So use what is needed 🙂

@ssvaidyanathan it is worked, Thanks for quick solution.

hi @ssvaidyanathan , If i want to create two pom.xml(shared-pom, pom.xml) files for your proxy api, what are the changes do we need do. I tried multple shared-pom.xml from apigee maven plugin git repo. but all xml files are getting multiple issues.

Basically i am trying to download my actual api (which is created with basic functionality)  from apigee hybrid and add shared-pom and pom.xml files.

Advanced thanks for your help

@Laxmman - pls post a new question