How to determine a particular proxy change in a Git repo with N number of proxies

Hi All,

I am setting up maven & jenkins for my organization. We are using Gitlab. We have one repository under which we have N number of proxies. As apigee maven plugin suggested, I have one shared-pom.xml in the repo and individual proxy specific pom.xml under each proxy.

I am able to deploy every proxy when I run the below maven command for proxy pom.xml

mvn install -Pdvl -Dusername=$ae_username -Dpassword=$ae_password -Dorg=dvl-myorg -Dapigee.config.options=create

Now, I want to achieve below.

  • Set up complete CI/CD process.
  • Make a change in on proxy and commit in Git
  • It should invoke the jenkins job
  • It will deploy the only proxy which is changed.
  • No other proxy will be touched.

I am having a hard time to find out which proxy is changed. Did anyone face this issue?

I don't want to create separate repo for every proxy I am building.

2 4 766
4 REPLIES 4

Even I have the same question, could you please help us, how to check new proxy has appeared in repository @Dino-at-Google @Sai Saran Vaidyanathan @Anil Sagar @ Google @Anil Sagar

Hi @Krish / @Mohsin Khan

In the samples, I don't think we recommended to have multiple proxies in the same repo. The structure was recommended to keep the main pom (shared-pom) out and just have the basic pom.xml in each apiproxy. I personally recommend having each proxy in a separate repo so that you don't have to get into this trouble (of finding which proxy within the repo changed and then just deploy that).

My options:

  1. See if you can split them into separate repos so that you have complete ease and control over the API, its SDLC and release mgmt process. With all that APIs in one repo, you will end up having issues down the line when you have more proxies. You can have the shared-pom in a completely different repo (maintained by your DevOps team). Your Jenkins job can checkout that and then the actual proxy to get all the necessary poms in your Jenkins workspace and then run the pom file. With this you have control over the code and its all using the same centralized shared-pom so that if that changes, every build automatically gets updated as well since they all point to the same repo for shared-pom
  2. Write a util script using git commands to get the list of files changed and then find the proxy which changed and then trigger Jenkins (paramterized build) with the necessary proxy name so that it deploys that alone. This gets a little tricky but if you cannot do option 1 above, then this is the only option.

Former Community Member
Not applicable

Hi Sai,

I would like to implement option 1 for our setup. 1 repo for each proxy and 1 jenkins job to deploy any updated proxy repo to apigee. Could you please share the shared-pom.xml and pom.xml in each proxy repo?

Hi @Sai Saran Vaidyanathan@Anil Sagar @ Google@Anil Sagar @Krish / @Mohsin Khan

I am also having same scenario , do you have any suggestion to determine a which proxy change in a Git repo with N number of proxies and deploy only changed proxy using the jenkins.

Thanks in advance.