Ошибка CI / CD в gitlab. Как исправить?

Последние 3 push'а в gitLab у меня во вкладке CI/CD появляется ошибка (статус failed) и соответственно изменения на сервере не применяются.
6000055ac3417411061163.png

Об ошибке пишет так:
600005f36d3a0653647013.png

Тут я обратил внимание на:
error: Your local changes to the following files would be overwritten by merge:
package-lock.json
Please commit your changes or stash them before you merge.

Но не совсем понимаю. Зачем и где он просит меня сделать комит или спрятать в стэш если я и так уже сделал комит и передаю в gitlab?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
smilingcheater
@smilingcheater
Дополню ответ выше, откуда взялись изменения. На скрине видно, что для деплоя запускается отдельный скрипт, который выполняет
cd ...папка... && git pull && npm install && ...
т.е. переходи в какую-то папку на сервере, стягивает изменения из гита, запускает установку npm-пакетов и что-то собирает. Так вот - выполнение команды npm install может переписывать файл package-lock.json (который у вас на скрине как раз и помечен изменённым). Чтобы NPM ставил всё чётко по lock-файлу - надо использовать команду npm ci, https://docs.npmjs.com/cli/v6/commands/npm-ci
Далее, чтобы пофиксить текущую ситуацию, наиболее простым вариантом мне видится: 1. зайти на сервер руками и откатить изменения в этом файле. 2. поменять команду в .gitlab-ci.yml
Если доступа на сервер нет - то можно попросить того, у кого он есть.
Если с этим проблемы - можно модифицировать команду деплоя, добавив в неё сброс стейта репозитория например через git reset --hard (будте аккуратны с этой командой!) перед выполнением git pull.
Ответ написан
GavriKos
@GavriKos
Ну судя по всему там, где пытается развернуть приложение, доставка сделана тоже через гит и ТАМ вот есть изменения незатреканные. Откуда они там взялись - другой вопрос, то ли в процессе работы что то создается и не удаляется, то ли что то при каком то деплое пошло не так
Ответ написан
Ваш ответ на вопрос

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

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