Как настроить CI/CD в gitlab для go проекта?
gitlab должен скачать ваш проект, потом выкинуть по ssh на ваш сервер, ниже скину мой конфиг, который даёт доступ гитлабу к репозиториям организации. Помимо всего, вам нужно добавить ssh ключ, зайти сюда https://gitlab.com/orgname/reponame/settings/ci_cd, сделать xclip -sel clip < ~/.ssh/id_rsa.pub и подсунуть его гитлабу на той самой странице в переменные скопированный ключ. 
указать переменную SSH_PRIVATE_KEY
Всё.before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
По итогу мытарств написал статью на хабре с более-менее подробной инструкцией
https://habr.com/post/421087/