We are using GitLab.com simply because it is a freely-available and hosted toolset that is well-integrated. There are other alternatives, such as Bitbucket Pipelines, that require a little more elbow grease to stand up but they still offer comparable features. A bitbucket-pipelines.yml file is included in the recipes for comparison.
As we have seen throughout this cookbook, our unit of deployment is a stack, as defined by a serverless.yml file in the root of a project directory. As we see in this recipe, each project is managed in its own Git repository and has its own CI/CD pipeline. The pipeline is defined by a configuration file that lives in the root of the project as well, such as a .gitlab-ci.yml or bitbucket-pipelines.yml ...