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?

(see answer in talk video)

Tomasz S

How many RDEs do you recommend having in a team to achieve this?

(see answer in talk video)

Rogier

(answered during the talk) wouldn't a from-scratch, throwaway, RDE environment be easier?

(see answer in talk video)

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?

(see answer in talk video)

Michael

Is an RDE always the same version as your AEM production environment?

(see answer in talk video)

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?

(see answer in talk video)

Robin

Will Adobe in the end support getting a pre-provisioned image on your RDE, so you can speed up this pipeline and testing?

(see answer in talk video)

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.