Automated CI with AEM Cloud service
With the introduction of RDEs in AEMaaCS earlier this year, we now have the potential to deploy code much faster to a cloud environment
We will showcase how we can automate actions with RDE environments from CI/CD pipelines and how to leverage them to run multiple types of validations like integration test, ui tests or lighthouse performance tests.
At the end we will share a customer perspective of RDE integration with the GitLab CI system.
Deploying features to a short-lived and disposable AEMaaCS instance prior to code merge not only shortens your feedback loop, but also makes overall delivery less error prone, as the entire test suite (including functional and UI tests) can be triggered much earlier in the process increasing the confidence of the code pushed without having to wait for the Production Pipeline to fail.
Tomasz S
How do you deal with lack of Frontend Pipelines?
Tomasz S
How many RDEs do you recommend having in a team to achieve this?
Rogier
(answered during the talk) wouldn't a from-scratch, throwaway, RDE environment be easier?
Henry Kuijpers
Why not use the systemready framework, as that is intended to tell you that the system is properly started, instead of checking <title> in the content?
Michael
Is an RDE always the same version as your AEM production environment?
Tomasz S
How do you deal with lack of RDEs? Just fail the pipeline and let people wait for a free one to show up?
Robin
Will Adobe in the end support getting a pre-provisioned image on your RDE, so you can speed up this pipeline and testing?
BartT
Failing the pipeline seems excessive for RDE’s not available. Is there a reason the pipeline could not just wait until there are (enough) available RDE’s?
BartT
Answered in response to other pipeline question
jwadolowski
Small addition - number of RDEs is finite and it may take days to free a slot up (it all boils down to how long your MRs typically live).
Lucian-Felix Ghita
Github Actions support?
jwadolowski
Any CI/CD supports that worfklow, incl. Github Actions. It's only a matter of syntax and commands that get triggered inside. See Andres' CircleCI example here: https://github.com/andresbott/aem-guides-wknd/blob/main/.circleci/config.yml
Michael
What is your check to see if a RDE is free?
jwadolowski
In the background we maintain a map that links RDE IDs (key) with MR IDs (value). A key with an empty value translates to a free RDE. Writes to that map are protected by a mutex, so only 1 pipeline instance can update it at a time.