โ„น๏ธOverview

About our front ends

Technology Stack

We have built our front ends primarily using Node.jsarrow-up-right, Reactarrow-up-right, and Redux Toolkitarrow-up-right.

circle-info

We recommend getting familiar with the basics of each technology before contributing to one of our front ends.

Code Repositories

Each service has a front end code repository in the Ocado Technologyarrow-up-right GitHub organisation which follows the naming convention:

codeforlife-{service}-frontend

Viewarrow-up-right our front end repos on GitHub.

Template

To speed up the process of creating a new front end repo, we created the template repo codeforlife-template-frontendarrow-up-right which can be used to scaffold a new service's front end repo. Read herearrow-up-right on how to create a repo from a template.

circle-check

CI/CD Pipelines

In order to avoid repeating the same pipelines in every front end service, we centrally define the pipelines in our workspace repoarrow-up-right, and reference them in each front end service. In GitHub's terminology, these are referred to as reusable workflowsarrow-up-right.

There are 2 main pipelines in each front end service.

main.yaml

The main pipeline for each front end service which simply reuses the frontendarrow-up-right pipeline located in the workspace. This pipeline is responsible for testing and deploying a front end service.

You can see an example of this pipeline in the front end template repoarrow-up-right.

contributing.yaml

This pipeline is responsible for managing the process of contributing to our code base, such as checking our contributors have signed our contributor agreement, auto-assigning/-unassigning contributors to issues, and more.

You can see an example of this pipeline in the front end template repoarrow-up-right.

JavaScript Package

To avoid repeating code across 2 or more front ends, we have created the repo codeforlife-package-javascriptarrow-up-right which automatically tests and releases new version of the package using semantic versioningarrow-up-right. These versioned packages can then be installed into our JavaScript environment (node_modules).

Learn more about our JavaScript package herearrow-up-right.

Last updated

Was this helpful?