1569935342231.png

Pitch Γ— Mergify

How Pitch leverages Mergify toΒ have their main branch always ready to be deployed to production whileΒ automating the entire process.

Summary

Challenges

  • Having the main branch always ready to be deployed to production safely.
  • Automating the merging process with a simple tool.
  • Managing the growing team and complexity of supported systems by using simple tooling.

Solution

  • Provide engineers a workflow automation tool.
  • Leverage Mergify to automate the process of updating, merging, and prioritizing pull requests.

Results

  • Deployment to production is safe and the risk of failure is minimal.
  • Regressions are caught early.
  • Every engineer can have their code merged automatically with no manual intervention.

Case Study

Who's Pitch

Pitch is building uncompromisingly good presentation software. With a centralized workspace, easy-to-brand templates, an intuitive editing experience, and smart workflows, teams can create beautiful presentations faster. The company was founded in Berlin in 2018 and now has more than 100 people working around the world.

Always Ready to Deploy

When they started writing their presentation software, Pitch decided to have an evergreen main branch. From the beginning, the engineering team decided that their goal was for their main branch to be deployable at any time. That meant that no merged pull requests should ever break the main branch, which in turn meant that all tests should run and pass before the pull request was merged to the main branch.

Moreover, as an additional safety net, the team decided that pull requests should be automatically updated with the main branch first, pass all tests, and only then be merged back to the main branch. This helped avoid situations where an old branch is "green" but would fail after updating with its target branch.

Manually updating every mergeable pull request would have been at least tedious, if not impossible. Therefore, the team looked for a safe and straightforward tool that could save them time and effort.

Early on, as the team, test, and CI complexity grew, it was quite clear that we needed an automated tool.

Tomasz Biernacki - Quality Assurance Engineer at Pitch

Going Fully Automated

The Pitch team developed three core pillars for their merging process:

  • Simplicity: anyone in the group should be able to use the tool.
  • Automation: saves time for everyone.
  • Safety: the main branch is always ready to be deployed.

As maintaining a custom-made solution on their own for this would have been very expensive, Pitch's engineering team concluded that outsourcing the merging process was the right move and deployed Mergify. With straightforward configuration, they delegated the merge process to Mergify, which took charge of updating the code, triggering the CI, and merging the validated pull requests.

This workflow has been tremendously helpful for Pitch engineers, as they were able to catch regression bugs early on and prevent them to sneak into the main branch.

It was easy to convince the team to use Mergify. Everybody likes automation.

Tomasz Biernacki - Quality Assurance Engineer at Pitch

Mergify Everywhere

The customization level that Mergify offers allowed the team to define their workflow in a precise manner. More than just automating pull requests merges, they also used Mergify to build a custom notification system to notify developers of failed checks and create custom alerts (e.g., warning about important file changes, like SQL queries), and automate unimportant tasks. With the Mergify team's prompt help, Pitch solved all of their workflow issues and can now safely rely on Mergify to do the heavy lifting.

The adoption of Mergify by software engineers was straightforward as it boiled down to adding a label to a pull request and watching Mergify doing the rest.

We saw an exciting culture change. Adding the Mergify label became synonymous with merging. Think Google for the web, or Netflix for movies.

Tomasz Biernacki - Quality Assurance Engineer at Pitch

Ready to get started?