The Continuous Deployment workflow for both Network and DB consists of the three steps below.
We have two different jobs (stage and production) that are triggered when there is a new merge on dev or master respectively. These jobs can been seen at the .gitlab-ci.yml file on both of these repositories.
GitLab hosts some secret variables for each environment. Such as IP address, ssh keypairs, etc. GitLab CI uses that variables to remotely push the new code to the servers.
On servers there is a post-update git hook that runs the deployment tasks (collectstatic, reload gunicorn, etc), on each push.