Изменения Gitlab CI / CD работают не так, как ожидалось

#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».