0
votes

I want to implement a CI/CD process in our AEM Project. As part of that, we want to go a gitFlow branching strategy (https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow ) - trunk based development approach. We want to enable dark launching (https://www.facebook.com/notes/facebook-engineering/hammering-usernames/96390263919/ ) where we separate deployment and release and the crucial bit for this is feature toggling / flag.

Our AEM implementation normal feature stories include simple dialog field changes / css changes to all type of implmentations.

I am planning to use AEM OOTB as the feature toggle mechanism ( http://sling.apache.org/documentation/the-sling-engine/featureflags.html ) as this gives a OOTB console as well (http://localhost:4502/system/console/features ). A good example is explained at ( aemtreasury.wordpress.com/2015/10/20/feature-flags/ ). But the major issue is with the xml based file changes ( dialog.xml, _cq_editConfig.xml, .content.xml etc ) which makes the major part of AEM development. I need a way to inject the feature flag value to all the XMLs in AEM.

My idea is to inject the value to these xmls and write conditions to use the feature flag to toggle anything associated to the feature. Is there any best practices I should follow to achieve this capability or any documentation to guide me in the right direction.

Thanks in advance.

1

1 Answers

0
votes

I'm not sure why do you need feature flags. I worked in multiple projects with CI/CD and git flow. If you cannot test feature branch on separate environment, I would suggest to have master and develop branch, where develop branch will contain all features which are currently in development / QA.

Having develop branch also protects you from issues which might occur after integration of feature with stable version. For example if feature A affects feature B, you will know that if you will merge feature A to master branch, the feature B will require some code changes.