

Show HN: Automatically create QA environments for your GitHub pull requests - mpotter
http://prune.io?hn1

======
mpotter
Dev here. Our team has grown to love the GitHub pull request workflow. We
built Prune to solve one issue we consistently run into: how to QA on the
various branches before merging. Happy to answer questions and thanks for any
feedback!

~~~
jawns
Can you give more details about Visual Regression Testing? If you're comparing
screenshots, how do you account for dynamic content?

~~~
mpotter
Sure! We use a web driver to simulate browsing in an actual client, so
Javascript, etc. is executed as it normally would be.

~~~
jawns
But what about content that changes on each page load, like a timestamp or a
rotating banner ad? Would that be flagged as a regression?

~~~
mpotter
Yeah, it's not perfect but right now we're solving this with tolerance
thresholds on the image diffs.

~~~
maerek
Can you share any more details on how the image diffing is done? BBC has a
github repo called Wraith that uses ImageMagick and PhantomJS to accomplish a
similar task (without the awesomeness of on-demand testing environments).
Always curious to learn more about how people are solving the GUI testing
problem on the web.

~~~
dbarlett
There's also Depicted (dpxdt)[1] - more workflow, Python instead of Ruby.

[1] [https://github.com/bslatkin/dpxdt](https://github.com/bslatkin/dpxdt)

------
xixixao
"Who are you people?"

Why are you committing before making a feature branch, is this part of some
flow? (just surprised me a bit) This is as sick as automated CI gets though.

------
masklinn
That's pretty nice, although... since there are already environments to run
tests (e.g. travis) why run them again in Prune, and why not wait until the QA
environment is setup to display the notification?

I dig the visual regression thing, though I fear combinatorial explosion for
big-ish changes if it goes through the whole site or application.

------
siegecraft
I just set something like this up for a project I'm working on, using jenkins
and (of course) docker. The level of project integration required makes me
wonder how easy it is to offer it as a service, but I guess if you can solve
that problem you'll get customers.

------
jamtur01
Neat idea.

What's the underlying technology creating the QA environment? A virtual
machine? A container? How is it being configured? A CM tool?

~~~
jbaudanza
Go-go-gadget Docker. (according to mpotter below)

------
jbaudanza
This looks awesome. I love the auto screenshot feature.

------
michaelmior
How do you manage to support whatever crazy environments a dev may cook up and
all the services needed to get a working QA environment set up?

~~~
mpotter
We'll announce our supported environment list shortly but the preview answer
is: Docker & Heroku Buildpacks :)

------
joshcrowder
This looks great - Interested to see the pricing - I'd want to use it across
all of our clients projects.

------
nahimn
I want this.

