Как обойти асинхронный процесс создания файлов во время работы Git Clean из GitLab CI? - PullRequest
0 голосов
/ 14 декабря 2018

Типичная последовательность событий:

  1. Задание запускает фоновую службу.
  2. Задание не выполняется по какой-то причине.
  3. Новое задание запускается.
  4. Новое задание не выполнено, поскольку команда из предыдущего задания все еще создает файлы.Это приводит к сообщениям об ошибках, таким как

    предупреждение: не удалось удалить / some / path: каталог не пуст

    из git clean.

Вещи, которые не работают:

  • before_script работает после git clean, поэтому я не могу очистить состояние там.
  • after_script не гарантированно запускает тот же бегунок CI, поэтому я не могу использовать это для очистки состояния.

Вещи, которые технически работали бы:

  • Помещение массивного || {first cleanup command; second cleanup command; …} после каждой отдельной команды не поддерживается.

1 Ответ

0 голосов
/ 14 декабря 2018

В настройках CI / CD проекта GitLab есть опция git clone вместо git fetch для получения последнего кода.Так как это, вероятно, будет rm проблемный каталог во всей его полноте, он должен работать.Это было бы очень медленно для большого проекта, но в этом случае дерево исходных текстов составляет всего несколько МБ.

Это работает, но я награжу любого, кто решит это более элегантным способом.

...