How we approach CI/CD

Reading time2min


Updated


Authors
Bruno Rubin
Bu Kinoshita

CI/CD (Continuous Integration and Continuous Delivery) pipelines are the core of our development and deployment process. Pipelines automate the build, testing, and deployment of our applications and services.

GitHub

We use GitHub as our primary version control system. GitHub provides a centralized platform for versioning control, enabling cross-collaboration, code reviews, and tracking changes across teams and projects.

Our preference is for smaller and more frequent changes. This approach promotes agility and makes us iterate fast, shortening the feedback loop. Breaking down tasks into smaller components helps us track progress, review code changes, and identify bugs earlier on.

Build & Deployments

Our build process starts by pushing changes to a repository on GitHub. When code is pushed to a repository through a pull request, it triggers a job to build the changes made to the branch and deploy them in isolation. This workflow happens interactively within the pull request, where the author has visibility of all steps.

Some tools we use offer preview URL deployments that contain the latest changes for each PR. Every new commit in the branch triggers a new build, and this isolated environment always contains the latest changes.

This practice enables the engineers to preview and validate the changes before anything is pushed to production.

Going Live

After the PR review, a squash merge is performed into the main branch. Once we are ready to trigger a release, the main branch is rebased into production, triggering the pipelines to deploy the latest updates.