Назад | Перейти на главную страницу

Автоматическое развертывание GitLab

Я буду создавать сервер gitlab в своей школе для размещения кода класса. Я хочу сделать так, чтобы каждый раз, когда любой пользователь нажимает на gitlab, он автоматически развертывал проект в /var/www/gitdeploy/<repo-user>/<repo>/<branch>, таким образом, что http://<myServer>/gitdeploy/<repo-user>/<repo>/<branch> доступен.

Желательно, чтобы он развернул все ветки, но, как минимум, мастер будет в порядке. Все это будет работать на одном сервере.

Я слышал о Gitlab CI, но не был уверен, что он подходит мне, и не понимал, как его настроить.

Как я мог это сделать?

РЕДАКТИРОВАТЬ: Кроме того, я думаю, я должен указать, что я хочу его для ВСЕХ пользователей, надеюсь, без моей настройки для каждого пользователя, ice globaly

Вы можете сделать это с помощью серверной ловушки git (например, post-receive), который разворачивает ваш код. Однако Gitlab CI предназначен для этого, и вам следует рассмотреть возможность его использования.

Если вы выберете крючок, он будет сценарием оболочки в .git/hooks/post-receive/. Для этого потребуются учетные данные для развертывания, и вам нужно будет написать их самостоятельно. Однако это один из вариантов использования хуков. Ознакомьтесь с документацией: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

Также см. Документацию по gitlab: http://doc.gitlab.com/ce/hooks/custom_hooks.html

Я выяснил возможное решение, в установке «Омнибус», я считаю, что можно создать глобальный перехватчик, добавив некоторый рубиновый код в /opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive. Однако всякий раз, когда вы обновляете gitlab, этот хук будет возвращаться к версии пакета. Я бы посоветовал держать пакет в руках, чтобы этого не произошло.