Since we introduced Heroku CI over a year ago, we've been hard at work developing features aimed at making your testing speed even faster and workflow more optimized. Today we are pleased to announce Heroku CI Parallel Test Runs and the Heroku CI API are now generally available (GA) for all Heroku customers. Parallel Test Runs allows you to split up and execute test runs on up to 16 nodes. With the Heroku CI API, you can create, trigger, and receive test run info from your own custom workflow or CD tools. Additionally, we are opening up our support for cross-browser UAT via integration with third-party providers to private beta participants.
Need for Speed
As applications grow and become more complex, the size and execution time of the tests increases. We initially designed Heroku CI to be fast by making it low-config and immediately executing tests without needed a queue, but our users needed more. With Parallel Tests for CI, we now provide support for splitting test runs across up to 16 dynos to substantially reduce execution time. Since launching our limited private beta, customers have seen great improvements in test execution time.
As soon as we heard about the Heroku CI beta, we jumped in. Once the basic setup was done, moving to Parallel Test Runs was pretty easy; we now run tests on 4 dynos in parallel which divided the overall test run time by almost 4. — Florent Galland, Cofounder, Dougs.fr
We were previously using Bitbucket Pipelines and it took around 40 to 50 minutes to run all our tests. After we decided to migrate to Heroku, in a few hours we were up and running with our custom spec setup, running both linters and tests. With Parallel Test Runs, our pipeline time dropped to 8 to 10 minutes. - Manuel Puyol, Engineer, Qulture.Rocks
More Control Over Your CI Workflow
Heroku's developer experience and CI/CD workflows are built to enable dev teams to collaborate more efficiently. As more teams adopt Heroku, we've seen various ways they're trying to script Heroku's CI to fit within their existing infrastructure using the CI CLI. To make integration and customization easier, we're publishing our API documentation for CI. With the CI API, we support the following use cases:
- Test Case
- Test Case List
- Test Node
- Test Node List
- Test Run
- Test Run Create
- Test Run Info
- Test Run List
- Test Run Update
Support for Third Party UAT Providers
We've offered UAT in the past via headless Chrome and xvfb, but our users desired a more expansive offering that would allow them to visually test their applications in more browsers. We saw our customers manually testing their Review Apps and staging apps with third-party UAT providers such as Functionize and Sauce Labs. To make that process easier, we now provide access to a testable version of your application via an environment variable. If you're interested in learning more about our new UAT offering and would like to participate in the limited private beta, check out our documentation.
Looking Ahead
This year, we will continue to offer additional features aimed at optimizing your workflow and giving you more control over how your apps are built, deployed, and scaled on our platform. As always, we'd love to hear from you as we look to direct and prioritize these efforts. Please contact us with your feedback.