Heroku Flow brings together Heroku Pipelines, Review Apps and GitHub Integration into an easy to use structured workflow for continuous delivery, so you can test early and deploy often, with better results for your users.

App-centric Continuous Delivery, Optimized for Developers

Professional Workflow in Seconds

Organize your pipeline by connecting your GitHub repo, and then placing your Heroku apps in dev, staging or production environments. Simultaneously develop features on dev branches that are reflected by disposable review apps, merge pull requests, auto deploy to staging and control who promotes to production.

Complete Visualization of Code Delivery

Always know where a particular feature is on the path to production with the real-time Pipelines overview in the Heroku Dashboard. The Pipelines overview provides a single page view of the current relationships between apps, giving your team the state of development across all your environments.

Better Quality, Tighter Iterations

For every open Pull Request, Heroku can spin up a disposable review app on a unique URL. Now everyone can contribute to feature testing early in the product life cycle for speedier decisions and better quality. You can keep staging and production environments identical to catch flaws before your users do.

Heroku Teams

When combined with Heroku Pipelines, Review Apps and GitHub Integration, Heroku Teams makes it even easier to embrace continuous delivery. Pipelines structure your team’s review, staging and production apps so members with the right roles and permissions can collaborate on continuous delivery for more frequent, higher quality releases.

  • With inclusion of Heroku’s Pipelines feature, our team has a very robust and efficient method of development, testing, and deployment. We like it!

    Darrel Stone Engineer, University of the Nations
  • Heroku’s Review Apps feature is an integral part of our deployment process. Both our engineering and product teams use it to test code and the overall user experience.

    Matthew Eckstein VP of Engineering, charity: water Read the dev interview >>
  • We ship to production multiple times a day, and Heroku’s Review Apps has become central to our process. It’s so easy for us to spin up a Review App for the team to validate and approve a new feature before it ships.

    Tim Julien Vice President of Engineering, Bonobos Inc.

Heroku Flow Brings Together Three Key Capabilities for Continuous Delivery

Heroku Pipelines

Heroku Pipelines Read docs

Pipelines is a way to organize a group of Heroku apps sharing the same codebase into review, development, staging, and production environments to support, manage and visualize continuous delivery. Promoting tested code from one stage to the next can be done manually or automatically and is nearly instantaneous, since the compiled artifact is promoted to the next stage. The Pipelines overview page in the Heroku Dashboard tracks the real-time progress of code and features from development to production.

Heroku Review Apps

Review Apps Read docs

Review apps are a new way to propose, discuss and decide whether to merge changes to your code base. For Heroku apps connected to GitHub, Heroku can manually or automatically spin up a temporary test app on a unique URL for every opened pull request (PR). The temporary app is auto-updated on every commit, so instead of guessing about what the code might do, reviewers can actually try the changes in a browser. Merging the PR destroys the review app and, when used with pipelines, automatically promotes the code to staging.

Heroku GitHub Integration

GitHub Integration Read docs

Connect your GitHub repo to a Heroku app to either manually or automatically deploy a particular branch on every GitHub push. For every deploy you can see the diff between the current release and the previous commit in the app’s Activity tab in the Heroku Dashboard, so you’re never guessing what code is on the app. If you’ve configured your GitHub repo to use an external continuous integration (CI) server, you can configure Heroku to only auto-deploy a branch after CI passes for a particular commit.