GitLab CI — Сохранить последний статус конвейера

# #gitlab #gitlab-ci

Вопрос:

В GitLab CI можно ли сохранить статус последнего конвейера, когда при нажатии задания не ставятся в очередь? У меня есть такая changes настройка правил в моем .gitlab-ci.yml :

 changes:   - Assets/*  - Packages/*  - ProjectSettings/*  - .gitlab-ci.yml  

что относится ко всем заданиям в конвейере (это задания по сборке для Unity, хотя и не имеют значения). ПРИМЕЧАНИЕ: Я хотел запустить задание на сборку только в том случае, если есть какие-либо фактические изменения файлов, которые потребовали бы перестройки. изменения README.md и CONTRIBUTING.md не являются изменениями, требующими перестройки, поэтому у меня есть такое правило.

Проблема в том, что мне требуется успешный конвейер для объединения ветвей, и когда я пытаюсь объединить измененную ветвь README.md , очевидно, что конвейера нет. Проверка состояния трубопровода застрял

Есть ли способ просто «повторно использовать» результат предыдущего конвейера или иметь «фиктивное» задание, которое выполняется мгновенно при любом нажатии, чтобы иметь возможность объединить эту ветвь, не требуя дорогостоящей перестройки всего проекта?

Ответ №1:

Как вы упомянули в своем последнем абзаце, единственный способ обойти это-ввести фиктивное задание, которое всегда выполняется успешно; что-то вроде echo "hello world" сценария.

Однако, в зависимости от того, как долго будут выполняться ваши тесты, лучшим вариантом может быть просто выполнение тестов каждый раз, независимо от изменений. Любой вид частичного запуска конвейера с использованием changes ключевого слова оставляет вас открытым для слияния изменений, которые нарушают ваш конвейер. Это, по сути, тесно связывает вашу логику в вашем конвейере со структурой компонентов вашего кода, что не всегда хорошо, поскольку одна из задач вашего конвейера-улавливать такие межкомпонентные сбои.