Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Build CICD pipeline to deploy API proxies to APIGEEX using github actions

HI,

I am looking for some example or the documentation link to Build CICD pipeline to deploy API proxies to APIGEEX using GitHub actions.

Can someone please me and guide me here.

2 1 687
1 REPLY 1

Hello @apatilgtn!

I can share with you some information with regards to automating API Lifecycle in apigee. There are indeed multiple tools to help the automation process in apigee. That being said, it is important to take into account that apigee has APIs for managing most of its configurations, import/export resources (such as apis and dependencies) and create deployments in a programmatic way. The tools and stages of you cicd pipeline will be interacting with these APIs. You can find the APIs here:

ricardosm_0-1724075572585.png

For tools to help this process you can review the following:
  • Integration testing: https://github.com/apickli/apickli (A Rest API/Service integration testing framework that uses gherkin syntax a  human readable way of defining tests)
  • Static code Analysis (Resources .js): https://eslint.org/ (You can use something like this to test some of the resources)
  • Static Code Analysis (apiproxy and sharedflows): https://github.com/apigee/apigeelint (Static code analysis for Apigee proxy and sharedflow bundles to encourage API developers to use best practices and avoid anti-patterns.)
  • Build and Deploy:  https://github.com/apigee/apigee-deploy-maven-plugin (build and deploy utility for building and deploying the Apigee ApiProxy's/Application bundles into Apigee Platform)
 
If you want to automate the configuration stage of your pipeline, here are some sample shared flows that will assist with some of those configurations: https://github.com/apigee/devrel/tree/main/references/common-shared-flows
 
Also, one of the most important aspects will be actually enabling github to access the google apis (apigee management apis). For this purpose I would suggest using Workload Identity Federation: https://cloud.google.com/iam/docs/workload-identity-federation
 
Let me know if it helps 😁 and if you have any questions, don't hesitate to ask!