@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 их тоже удаляет, чего быть не должно.
  • Вопрос задан
  • 1048 просмотров
Решения вопроса 1
@Siricks12 Автор вопроса
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы