Hi @kdaud Heroku: is a Cloud Application Platform that happens to have a whole ecosystem of tools to support the building and deployment of code from git(source control) / local dev environment to the cloud.
The correct tool to use for your CI/CD automation may depend on the environment that you intend to set up. As there is a mass exodus towards Cloud Native applications built around Kubernetes, most solutions may require a very specific environment.
If you intend on using Kubernetes look no further than Jenkins X. It has built-in support for pull request-based development with support for previews. There is also support for different environments like DEV, STAGING, and PRODUCTION as well as fine-grained Access Control.
Otherwise, the good old Jenkins can be of great use if you do not intend on using Kubernetes and you are okay with the DIY approach and use of plugins.