Асинхронный конвейер в Gitlab для нотариального заверения макросов - PullRequest
1 голос
/ 07 февраля 2020

Я использую GitLab, и у меня есть проект на 2 ГБ, который должен быть заверен Apple. Вот текущий конвейерный поток:

Компиляция ==> Тест ==> Zip ==> Нотариальное заверение ==> Создать установщик ==> Готово

Нотариальное завершение занимает один час . Серверы Apple имеют очередь, поэтому 80% времени процесс фактически ничего не делает. Он открывает соединение и бездействует, пока не произойдет загрузка. Так что процесс в течение долгого времени практически ничего не делает.

Таким образом, бегун блокируется этой задачей. Могу ли я пометить задачу как «asyn c», чтобы этот участник мог выполнить еще одну задачу? Технически 100 сборок могут быть нотариально заверены одновременно, без каких-либо проблем с производительностью. Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 07 февраля 2020

Я не вижу этой функции, напрямую доступной в конвейерах.
Существует только gitlab-org / gitlab / issue 27165 , которая может не подходить на 100%:

Иногда может потребоваться выполнить задание, не влияя на результат текущего конвейера.

Простейшим примером являются тесты покрытия.
Теперь нам нужно дождаться выполнения тестов покрытия, хотя они выполняются в течение длительного времени, и нам нужно только выполнить обычные тесты.

Это действительно ссылка, хотя gitlab-org / gitlab-foss, проблема 47063 о выполнении задания вне последовательности с использованием направленных графиков acycli c.

Например, когда проект генерирует приложения Android и iOS в многоступенчатом конвейере, люди хотят, чтобы развертывание iOS началось сразу после того, как все тесты iOS пройдут, а не ожидают все Android тесты тоже пройдут.
Общее время вычислений может быть одинаковым, но время настенных часов отличается.

В более сложных случаях можно значительно сократить общее время настенного конвейера, указав, какие именно задания зависят от других заданий.

Такое решение, как DAG, может позволить конвейерам быть сопоставлены с точки зрения зависимостей, а затем ресурсы для облачных вычислений, примененные автоматически наиболее эффективным способом для выполнения. Это очень мощный инструмент, позволяющий оптимизировать ручную оптимизацию конвейеров.

Это в GitLab 12.2 и более (апрель 2019 г.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...