From code to production: A guide to continuous deployment with GitLab