Gitlab CI / CD конвейер. Pu sh в какой-то папке выполняет связанный этап - PullRequest
0 голосов
/ 14 января 2020

У меня есть хранилище для C учащихся. Моя цель - когда кто-нибудь наберет какой-нибудь код, этот код будет протестирован. У меня есть несколько папок в репо - каждая папка для каждого задания. На данный момент, когда кто-то толкает, я могу составить и проверить все назначения во всех папках. Я хочу проверить только задание, которое было отправлено. Например:

В моем репо 3 папки:

-Task1
-Task2
-Task3

Когда кто-то нажимает, я строю все задачи и проверяю их все.

Что я хочу: если кто-то pu sh только Task1, тогда я хочу скомпилировать и протестировать только Task1, а не весь репозиторий. Это возможно? Скажите мне, если мне нужно дать больше информации.

1 Ответ

2 голосов
/ 14 января 2020

Это должно быть возможно при использовании только : изменения функции Gitlab CI. Вы можете указать каталог, в котором изменения будут запускать задание. Пример:

task_1_test:
  script: <compile & run test for this directory>
  only:
    changes:
      - Task1/*.{c,cc,cpp,o,h}

Затем задание по умолчанию будет запускаться для события pu sh, которое содержит фиксацию с изменениями в файлах с расширениями c, cc, cpp, o, h в каталоге Task1.

Надеюсь, это поможет

...