The process of building isolated application begins with the allow-list. The allow-list is a collection of apps that are eligible to take advantage of the faster workflow.
The allow-list lives in a JSON config file, and is separated into two parts:
A list of Webpack entry names from application manifests
Root folders of grouped applications that live in src/applications
Entry names that are added to the allow-list should come from the
entryName property in an application’s manifest. These are single applications that aren’t grouped in a subdirectory in
Applications sharing a directory in
src/applications should be added to the
groupedApps property. This is because grouped applications often share code in their root folder, so they are built altogether to ensure the quality of the changes.
Once an application or grouped applications are added to the allow-list, branches with changes exclusive to those applications will see a faster workflow. Branches that include changes from non-application code, or applications that aren’t on the allow-list, will perform a full build and all unit tests as usual.
As of now, this behavior does not run on the
main branch. Full builds are executed as usual.
Application(s) on allow-list
Changed files in branch
A full build is executed, because non-application code was changed.
For single/grouped application builds, the
Unit Tests job in the
Continuous Integration workflow will only run unit tests belonging to the updated application(s). The
Cypress E2E Tests jobs will only run Cypress tests for the changed application(s) as usual, in addition to the MegaMenu Cypress test, to ensure that the header is consistent across all applications.