Automatic Kubernetes deployments per Github pull-request
I don’t know of a specific tool but I have setup a lot of webhook handlers on OKD kubernetes to do git driven updates to kubernetes. All the scripts are on GitHub as OCD. The tools I used are:


adnanh/webook a go binary that you configure to catch git webhooks and run scripts. Here is my hooks.json config to match GitHub release events and run a build script on openshift kubernetes. Looking at the docs there are PR events you can match on. So you should be able to setup Webhooks to fire on PRs and trigger s2i builds.
hub is GitHubs official command-line tool. I put it into my tools image that runs my webhooks. It has some pull request commands. I haven’t checked them against your stated requirements. Hub is just a wrapper to their API so worst case you would need to use curl to update PRs. 
Helm is the installer/template engine I use for creating apps. Helmfile is an excellent extension. So here is a generic “deployer” helm chart that can spin up a deployment. So OCD responds to GitHub events of new Helmfile declarative configuration being pushed and deploys or updated any helm releases modified in git. 


For builds I had to do quite a bit to have an OKD container build tag the final container image with the GitHub release tag which is a generic “ocd-release-build” helm chart. I think that is necessary as each PR will need by tagged with the PR number in the container registry to deploy from that specific tag. I haven’t ever tried to get OKD to build a refs/pull but I would be shocked it didn’t work as expected. 

So while OCD doesn’t yet spin up builds and deploys based on PR events it appears is likely that it could be extended to do that. We have migrated our apps from our in-house scripts over to OCD. A “PR previews” feature could be a very cool feature to add.  Feel free to raise a feature request.