Задать вопрос
@Siricks12

Как правильно удалять файлы при деплое проекта через Gitlab CI?

Задача: организовать обновление сайтов на удаленных серверах после коммита

Как реализовано сейчас:
Для проекта создан хук post-receive. Когда я делаю коммит в соответствующую ветку файлы выгружаются в локальную директорию:
git --work-tree=/var/www/test.com --git-dir=/var/opt/gitlab/git-data/repositories/test/test-project.git/ clean -fd
git --work-tree=/var/www/test.com --git-dir=/var/opt/gitlab/git-data/repositories/test/test-project.git/ checkout -f


Если все хорошо (тесты пройдены), в Гитлаб запускается раннер, который делает:
lftp -e "mirror --delete --exclude \public_html/config.php --exclude \.gitlab-ci.yaml --exclude \public_html/img/. -R /var/www/test.com / ; quit;" -u ftp-user,ftp-password ftp://xxx.xxx.x.xxx:21


Загвоздка в удалении файлов. Сейчас, если я удалил какой-то файл из проекта, то он сперва удаляется из папки где локально развернут сайт (/var/www/test.com), а затем с удаленного сервера. Но при этом, если на удаленном сервере есть свои какие-то файлы, которых нет в Git-проекте, lftp их тоже удаляет, чего быть не должно.
  • Вопрос задан
  • 1121 просмотр
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
@Siricks12 Автор вопроса
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽