I have got a repo of all common components which are deployed to multiple brand websites . If I have to migrate this to AEM cloud service then I will create a single brand project based on the new AEM archetype. But then I also need to embed the common components package with the brand package. The pipeline in cloud manager can be setup to deploy the brand package(and embedded packages). Can I create a separate pipeline in cloud manager for common repo as well so that I can make sure that all quality gates are passed for common components ? Just trying to figure out what is the best way to setup CM pipelines in this scenario.
@kunal23 With AEM cloud service, it is expected to deploy all the code together since a new image is created with every deployment. This is further clarified here: https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/profile-builds-with-cloud-...
Though in this use case where you want to do a separate build to validate the quality of common code/ components, you can create a Non-Prod "Code Quality" pipeline (not a deployment pipeline) to run unit tests and evaluate code quality. This common code can reside in a separate branch and a new code quality (non-prod) pipeline can be configured with this branch and an appropriate trigger.
Thanks for your inputs. As I said, I have got multiple brand AEM code repos and a shared common components repo. Each brand will have its own code as well and it will be deployed to a program and in Cloud Service. The common repo code will be included as sub package in the brand package. I can not have common code in a separate branch in this scenario since every brand will have its own independent repo so this will not work. Also, the common code is completely divergent from the brand repo code.
As per Adobe a single program in cloud can have just one single git repository. So in this case I have got only two options-
- I use custom Jenkins CI pipeline for code quality checks for common repo.
- Or else I create a separate program and create new pipeline for compiling the commons component package. I can trigger this common component pipeline via my Jenkins pipeline and if the build in CM is successful then I can trigger the main brand project pipeline. But the only drawback is that I will have to create a separate program in cloud service just to create a separate pipeline.