In comments to some pull-request you mention this bot, and it would deploy this particular PR somewhere to the cloud and provide you with a public link. After some time this link will be destroyed.
We could also deploy current release to serve as a demo site.
I believe that should help with review process a lot and help people who are actually not deep into coding to test the PRs by clicking through. But would speed it up as well for normal developers.
Here’s my idea how to build an MVP for this, spending the least amount of time and money possible.
And yes, I’m a complete n00b at this stuff, so feedback is welcome.
We can use ProBot to build Github bots.
This bot would listen to comments mentioning it on PRs e.g. `
@neos-bot give me test instance
Then this bot would build a Docker image and deploy it to our Kubernetes cloud. When deployment finishes it should post a comment in that pull request with a link to newly deployed instance.
We can use Digital Ocean Kubernetes setup for hosting. It’s super easy to setup and for 10$/month we could manage to run a bunch of docker containers simultaneously.
ProBot bot is a nodejs app that can run in a container on the same K8s cluster. It should listen on some public port for an http request from github.
It can build Docker images and control K8s by issuing appropriate shell commands (or should we use K8s REST api? Would it be able to reach it from inside the pod?).
We can have a single shared database container to save some resources, though ofc that would require a bit more complicated setup to clean up old databases etc.