Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Multiple teams working on same sharing repo

Avatar

Employee

Hello,

 

In AMS ,Team A and Team B works on the same project sharing same project repo in bitbucket which will be pushed to AMS cloud repo via bamboo.

if they want to deploy team A code changes alone to the environment though team B new code changes are present in repo,  Can we restrict any specific folders or code not to be deployed in AMS by any chance?  

 

What we have in our mind:

 

We can create main development branch in bitbucket and will create two different branches for each team respectively. we can merge the specific team branch to develop branch only when needed. Since we don’t have the code in develop , it will not get deploy to the AMS cloud and environment as well.

But I am not sure can this be a good solution to it and any complications or issues would it create going forward.

 

So, Please help me to understand the above approach would be fine or any other approach available for this problem to allow teams to operate separately within the AMS structure.

 

@arunpatidar @joerghoh 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @Amsalek4, you mentioned two teams working on the same project meaning both teams are working on the same website but on different features. Is that right? 

 

Here is my take on the problem:

  1. Multiple teams working on the same project (single website): Teams work on features in this model (team A works on feature A & team B works on feature B). The approach you had should be OK, where you need to ensure that you keep the feature branches in sync with the released/master branch regularly. Occasionally, you've to deal with merge conflicts, though.
    Of course, this model is familiar, and you can make things easy with a well-defined git flow. Additionally, when you have dedicated development environments for features, things will be painless, and when the features are complete, both can be merged into a release branch and released. You can refer to this git flow explained in this article - 
    https://blog.logrocket.com/git-workflow-strategies-multiple-teams-single-repository/#new-git-workflo... 
  2. Multiple teams working on separate projects (multiple websites within an organization, for example, b2c & b2b): In this model, you can have multiple repositories deployed to the cloud environments or AMS environments using the Git Submodule Support or Using Multiple RepositoriesNote: If there is some common functionality b/w them, a shared module may be introduced in one of the repo. 

To my knowledge, you can't be 100% certain that this path is restricted from deployment in the AEM, as any user with administrator permissions or package manager access can deploy. But with a proper governance model, each change should go through a PR review process and be tested.

View solution in original post

5 Replies

Avatar

Community Advisor

Hi,

You can follow the tenant specific or product based approach to deal with it. for example below is the folder structure

/apps/group/core

/apps/group/teamA

/apps/group/teamB

 

and in AMS, deploy the artifacts(zip) only using cloud manager code/git.



Arun Patidar

Avatar

Employee

Hi @arunpatidar ,

Thanks for your reply!

Sorry I am not getting it. what is the folder path? you meant to say code should be in ui.apps/group/team folder? and what should be the group? and if we create structure like this, how it will restrict the code from deployment?

 

May I know the purpose of deploy only zip not jar bundles?

Sorry I am not understanding completely. 

Avatar

Community Advisor

Hi,

You can create multiple projects which deployed to certail paths e.g. /apps/group/projectA, /conf/group/projectA, etc.

in your bitbucket pipeline, generate the artifacts e.g. group-project-ui.apps-1.xxxx.zip

 

In AMS git, create a simple project and only do pom changes to deploy those generated articfacts.



Arun Patidar

Avatar

Correct answer by
Community Advisor

Hi @Amsalek4, you mentioned two teams working on the same project meaning both teams are working on the same website but on different features. Is that right? 

 

Here is my take on the problem:

  1. Multiple teams working on the same project (single website): Teams work on features in this model (team A works on feature A & team B works on feature B). The approach you had should be OK, where you need to ensure that you keep the feature branches in sync with the released/master branch regularly. Occasionally, you've to deal with merge conflicts, though.
    Of course, this model is familiar, and you can make things easy with a well-defined git flow. Additionally, when you have dedicated development environments for features, things will be painless, and when the features are complete, both can be merged into a release branch and released. You can refer to this git flow explained in this article - 
    https://blog.logrocket.com/git-workflow-strategies-multiple-teams-single-repository/#new-git-workflo... 
  2. Multiple teams working on separate projects (multiple websites within an organization, for example, b2c & b2b): In this model, you can have multiple repositories deployed to the cloud environments or AMS environments using the Git Submodule Support or Using Multiple RepositoriesNote: If there is some common functionality b/w them, a shared module may be introduced in one of the repo. 

To my knowledge, you can't be 100% certain that this path is restricted from deployment in the AEM, as any user with administrator permissions or package manager access can deploy. But with a proper governance model, each change should go through a PR review process and be tested.