GitLab CI and environments/promoting builds

Currently I’m using teamcity+octopus deploy to have the follow flow.

Teamcity builds code from master
Octopus automatically deploys these artificats on pre-prod server.
Humans check it out
Humans click “Promote to production” in octopus
Octopus deploys the same artificates onto the production server.

I’m unclear how to do this with gitlab-ci.Is anyone doing anything similar to this?.

What sort of continuous delivery/deployment workflow is supported by gitlabci?.

You know I was just asking the same thing here https://gitlab.com/gitlab-org/gitlab-ce/issues/17010