Minifets
@Minifets
Hello world!!!

Как сделать самый простой деплой в GitLab?

Доброго времени суток.
Как лучше всего организовать самый минимальный деплой на сервер в GitLab. Скажем простой HTML странички. После мержа в master и успешного pipeline на prod сервер выполнить checkout и pull.
Из решений нашел такой конфиг для .gitlab-ci.yml :

deploy-master:
    stage: deploy
        script:
            - ssh user@server-name.com "
                cd /var/www/ &&
                git checkout . &&
                git checkout master &&
                git pull
            "
        environment:
            name: production

        only:
            - master


Хотел обсудить насколько это "правильное" решение. И как бы сделали вы.
  • Вопрос задан
  • 538 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
И как бы сделали вы.

Поставил бы Deployer, на нем уже есть таски:
- GIT
- зависимости NPM/Composer
- чистка кеша и вот это все
- релизы (в случае ошибки -- не катить релиз и миграции откатить)
- расстановка прав и прочие штучки, если нужно
- если есть тесты -- прогон их, также phpstan и прчоее
все таски по желанию

В Gitlab CI вызывал бы в вашем случае примерно так:
deploy-master:
    stage: deploy
        script: dep --file=deploy/deploy.php -vvv deploy prod

Где:
dep -- запуск деплоера
prod -- название проекта из настроек самого деплоера (или окружение для нескольких проектов)

Работает так:
- создаются папки с релизами
- актуальный релиз линкуется на последний успешный
- при выкате нового -- создается папка с релизом и на него все ставится, если успешно -- ссылка преекидывается на него, если нет -- все остается как есть, нужно только учесть работу с миграциями

Если нужно очень просто
(а сейчас достаточно просто)
То просто у деплоера написал бы минимум тасок -- выложить из мастера ГИТ и перелинковать релиз
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abubekovdd
Ещё пример конфига для деплоя php сайта, там конфиг с использованием rsync https://coderun.ru/blog/deplojj-php-sajjta-iz-gitl...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы