# Overview

Continuous deployment at Marfeel guarantees that every site is always in sync with its Media Group repository content.

Each time you push a change to your Media Group repository, the continuous deployment system detects it, runs the associated build, deploys the results to a preview branch, and runs a battery of regression tests.

The benefits of Marfeel’s continuous deployment include:

  • Easy collaboration through pull requests
  • Any feature branch can be tested with realtime production data
  • Stakeholders can validate any change before landing merging in master
  • Each deploy is immutable offering instant branch previews
  • Fix a typo from the GitHub's web UI on your mobile

# Continuous Deployment

With MarfeelCD (ContinuousDeployment), a new release happens every time a pull request is merged.

There's no human intervention, and only a failed test will prevent a new change to be deployed to production.

Continuous deployment is an excellent way to accelerate the feedback loop and take some pressure off the team as there isn't a 'Release Day' anymore. Developers can focus on building software, and they see their work go live minutes after they've finished working on it.

# Build Pipeline

Marfeel manages deployments with Git (opens new window), the popular version control system. By default, Marfeel automatically builds Preview Branches for all GitHub pull requests; deploying and publishing them to their respective URLs. Any additional commit on that branch is automatically reflected in the Preview branch. Below is the sequence of build phases performed on the pull request branch:

Pull Request Pipeline

Notice how each build phase contains one or more steps? These describe the different stages Jenkins runs through to make sure that the code meets Marfeel's standards and that no regressions are introduced.

Several unit tests, for instance, are executed during the initial phase of the pipeline.

During the Shuttle phase, Marfeel updates the network file system by checking out the Media Group Deploy Repository. This repository is hosted on Gitlab, and not accessible by anyone by default.

When a Pull Request is created in GitHub, MarfeelCD determines which stages are necessary, based on the files that have been changed. This allows us to do really fast builds for small changes.

A Production Deploy is automatically triggered when a pull request is merged in master, which will eventually publish the changes in the site's main URL, provided it has passed all necessary checks.

Master Pipeline

Each step starts only when the previous one passes all the required checks. With MarfeelCD, you can feel safe about what is being deployed is reliable and stable; having passed a battery of tests throughout the deployment pipeline.

# Cache Invalidation

MarfeelCD provides instant cache invalidation. This means that when you update your site, you don’t have to wait to see the changes live, instead, you see them as soon as your site is updated.

Whether you're previewing changes from a pull request or publishing to your site's main URL, we make sure that cache purging is done on each deploy to guarantee zero propagation delays.

TIP

Keep in mind that is mandatory to open up a pull request to push changes to master. Visit our Media Group Pull Request guide for instructions on how to preview and publish changes right from your GitHub repository page.