Automate the transformation of a codebase into a build
Problem to solve
Developers want to focus on writing code to solve their business problem. But there's a ton of other work needed to get that code transformed into an executable build and then more work needed to get that build running in production. We already have Auto DevOps to help streamline that process. If there's no Dockerfile present, Auto DevOps leverages Heroku Buildpacks via Herokuish to automatically transform a codebase into a build. There are some problems with this approach:
- It only works for a handful of languages
- It's from a legacy generation and doesn't leverage Docker very efficiently
- Some buildpacks understand how to run CI tests, but not all
- The Heroku buildpack specification knows nothing about how to run security scanning, code quality, and other types of scans that should be part of your CI/CD configuration.
There's a new effort, Cloud Native Buildpacks, buildpacks.io, which aims to address some of the above, but not all of it. We could augment Cloud Native Buildpacks to support the missing pieces, and contribute those changes upstream. We could also explore other third-party efforts to see if they have a better fundamental approach. We could also develop something ourselves to handle this.