Continuous Integration (TBD) - Source Code Management Repo & Branching

Hello,

I wish to know what kind of source code repository and branching strategy is being followed and recommended for apigee projects

a. MonoRepository - Single Repository for all proxies or Repo-per-service

b. Feature or Trunk-Based Development

Referring to the article for source control in Apigee -

https://community.apigee.com/articles/34868/source-control-for-api-proxy-development.html

Branch structure in article is per environment. Is this not in variance with ContinuousIntegration(trunk based development ) where developers constantly push changes to master and the pipeline job takes it through all stages to production.

Also, the recommendation is to use repo-per-proxy. In the maven deploy plugin examples the structure is more of a mono-repository (or is it here also this is recommended for a single proxy only)

https://github.com/apigee/apigee-deploy-maven-plugin

please share your view @Sai Saran Vaidyanathan

<code>|-name-of-root (typically company name)
    |-archive/
      |-docs
      |-src
    |-binaries/
    |-build-artifacts/
    |-docs/
      |-customer
      |-reference
      |-solution
    |-src/
      |-analytics
      |-gateway/ ***
        |-parent-pom
        |-test-app/
          |-apiproxy/
            |-proxies
            |-resources/
              |-py
            |-policies
            |-targets
      |-java
      |-portal
    |-test

thanks,

Aakash

Solved Solved
0 2 313
1 ACCEPTED SOLUTION

Not applicable

I would suggest to go for separate repo for each api. So that it will be tracked in your repo of older versions, changes and trigger the Jenkins deploy once commit is done to master.

Single repo you can have when your proxies are using a particular template and you can have that template in a repo. Every time the proxy build and deploy will use the same template from the repo.

View solution in original post

2 REPLIES 2

Not applicable

I would suggest to go for separate repo for each api. So that it will be tracked in your repo of older versions, changes and trigger the Jenkins deploy once commit is done to master.

Single repo you can have when your proxies are using a particular template and you can have that template in a repo. Every time the proxy build and deploy will use the same template from the repo.

thanks priyadarshi for your advise ! any thoughts on release is it more in CD manner with some manual-approval at pre-prod, prod, or do you use intermediate branches test, pre-prod in between