Today, we are happy to announce the graduation of Heroku Review apps from an exceptionally popular beta to being generally available to all Heroku users.
Review apps are the instant, disposable Heroku app environments that can spin up automatically with each GitHub pull request. They allow developers and their teams to automatically build and test any pull request, updated at every push, at a temporary, shareable URL. When the pull request is closed or merged, the Review app is deleted. GitHub users are notified of all this, right in the pull request web interface.
Instead of speculating on how the code in a pull request might run, you can actually see the code running in a live environment. Now your team can focus on perfecting the user experience as well as finding and fixing bugs much earlier in the development process, leading to more frequent and higher quality releases. As GitHub puts it: "Heroku Review apps bring GitHub pull requests to life."
And we are happy that Review Apps are one of our most popular new features. Thousands of developers have participated in the beta, and the feedback has been helpful and gratifying - thanks to everyone that was part of the program.
To make testing accurate, these Review app environments can inherit the configurations of your Heroku staging and production apps, including add-ons and dyno formations. You can even write post-deploy scripts to populate data stores, ensuring that your Review Apps have meaningful data.. That way, you can be certain you're testing against the same situations your code will face after you merge into staging for integration testing, and then promote on to production.
Designers, Product Managers, and other internal stakeholders can now participate in the discussion around a pull request because they can actually run the new fix or feature in a browser — just by visiting the Review app URL. Runnable, testable Review apps can make a GitHub account meaningful for everyone on the broader product-development team, where they can join in the pull request comments. And Slack, HipChat, and e-mail discussions are more productive with an objective experience to discuss (and URL to include).
If you choose, Review app URLs can even be shared with outside clients, so they can vet and approve designs and features before the pull request is merged.
Review apps are core to Heroku Flow, our prescriptive, flexible Continuous Delivery solution for teams of all sizes. When you connect your Development or Staging app to a GitHub repo, Review apps and GitHub deployment are automatically readied for your Heroku Pipeline. The flow of code is visualized and managed on each Pipeline's overview page.
At each stage leading to Production, you can select the appropriate automatic or manual deployments: Review apps can spin up for each pull request, and GitHub can trigger deployments to staging for each merge and push to the branch of your choice (typically master). Then you can "promote" your built code from, say, Staging to Production — all in the same visual interface, with deploy access governed by Heroku Permissions
It's a simple and powerful way to add (and actually enjoy) continuous delivery without radical changes to your GitHub workflow. The real-time Pipelines overview page in the Heroku Dashboard presents or removes Review app details as each pull request becomes active or inactive, manages builds and code promotion, and provides set-up and options for all features of Heroku Flow.
Teams that want to restrict deployments to certain developers or build managers, can restrict deploy permissions on production or staging apps for compliance or security reasons without restricting the ability of developers to create, use, and share Review apps.
Companies using Pipelines in Heroku Private Spaces can choose to have Review apps spin up in the Heroku Common Runtime (for cost savings and wide testability) or in the Private Space of the parent app (for enhanced security and compliance).
To get started with Review apps, just login to Heroku, create a Pipeline from your main dashboard, and connect your Pipeline to the GitHub repo that manages your team's project code, with deployment to an app in Staging. In the "Review Apps" column of the Pipeline, you can then enable and configure your Review apps in a couple clicks.