You can do all the basic required tasks for your development with Gitlab. It provides source code management, ticketing, CI/CD platform and even container and platform registry.
I like how easy it is to create pipelines with jobs and stages, use of variables and the concept of default runners and also ability to configure custom runners.