Deploying to different environments in CI/CD

Hi all,
I need to set up a CI/CD pipeline on a repo to deploy code to different environments - development, non-prod(aka UAT/QA) and production. Each environment will have different versions of the application and different versions of documentation (in this case Swagger docs to be deployed to dev, uat or prod AWS S3 buckets). I want to run these builds from the same gitlab-ci.yml file and deployments will be executed at different times in the project life cycle. Has anybody else done this and if so, how?

Many thanks,


Hi @angusrose

If you are new to Gitlab CI I suggest to start here and then you can see all keywords here

In your case it would be couple jobs with bunch of rules to control what is in the pipeline and when.