Do our own language detection for Auto Deploy (and other Auto DevOps features)
Description
We currently use Herokuish, which has bundled a bunch of buildpacks, and they detect which buildpack applies, and then use it to build a Docker image of the project. This is pretty powerful and leverages other open source projects so minimizes our maintenance. But because it's opaque, it limits what we can do.
For example, I'd really like to add coverage reports by default, but those are language-specific, and not covered by any buildpack.
Also, Draft is approaching the problem differently. It's inspired by buildpacks, but after detection, pulls a template Dockerfile and Helm chart. I believe that we can have more efficient builds and deploys by skipping the buildpack and jumping right to a Dockerfile, just like Draft does. But again, draft stops at build and deploy, so doesn't know anything about tests, code climate, etc.
We might be able to augment these automated systems, or perhaps it's better to do our own language detection, use our own Dockerfiles and Helm chart, and build other pieces on top of that.
Proposal
Links / references
Documentation blurb
(Write the start of the documentation of this feature here, include:
- Why should someone use it; what's the underlying problem.
- What is the solution.
- How does someone use this
During implementation, this can then be copied and used as a starter for the documentation.)