#gitlab #gitlab-ci
#gitlab #gitlab-ci
Вопрос:
Я должен only:changes
запускать задание после изменений в определенном каталоге (пакеты / демо):
.demo: amp;demo
only:
changes:
- packages/demo/**/*
demojob:
<<: *demo
stage: test
script:
- echo demo
Должно выполняться при редактировании некоторого файла packages/demo
.
Но задание иногда запускается неправильно, я отредактировал файл, packages/car/demo.txt
и он demojob
запустил задание. Почему? Что не так?
Я нажал новую ветку, возможно, она связана с нажатием новой ветки.
Ответ №1:
Вы правы. Насколько я знаю, функция «только: изменения» работает путем сравнения текущего коммита с последним в той же ветке. Поскольку вы переходите к новой ссылке, новому коммиту не с чем сравнивать, поэтому «only: changes» возвращает True, и задание создается. Это объясняется здесь :
При отправке новой ветки или нового тега в GitLab политика всегда принимает значение true.
Чтобы последовательно избежать создания задания, вам необходимо указать ветку с «only: refs».