Повышение производительности конвейера azure за счет сокращения времени проверки - PullRequest
1 голос
/ 10 апреля 2020

Мы уже некоторое время используем azure devops, и у нас есть очень большой набор в репозитории с обширным конвейером yaml. У него есть все виды параллельных заданий, и у нас есть несколько размещенных агентов для параллельного выполнения заданий. Чтобы ускорить сборку, я делаю все виды оптимизаций (например, кэширование пакетов nuget). Однако из-за размера нашего репозитория конвейерные задания выполняются примерно за 2 с половиной минуты, прежде чем даже запускать какую-либо задачу, поскольку она запускает задачу извлечения, чтобы передать исходный код размещенному агенту.

Мы, вероятно, добавили несколько больших ненужных файлов в хранилище в начале нашего проекта, и это, вероятно, привело к небольшому переполнению хранилища. Я нашел некоторую документацию о том, как удалить большие файлы из хранилища, но документ довольно расплывчато об этом. Это правильный способ улучшить время оформления заказа? Если да, есть ли кто-нибудь, кто может дать мне подробное описание того, как удалить ненужные файлы из git хранилища и передать его в azure devops?

Если есть какие-либо другие вещи, которые я могу сделать, чтобы улучшить скорость оформления заказа (кроме использования частных агентов), я открыт для идей

1 Ответ

2 голосов
/ 10 апреля 2020

Поведение оформления заказа можно настроить с помощью ключевого слова checkout. В частности, можно указать fetchDepth (по умолчанию без ограничений) для мелкой выборки, которая может улучшить производительность.

Из документов Azure devops на Shallow Fetch :

Если ваш репозиторий большой, эта опция может сделать ваш конвейер сборки более эффективным. Ваш репозиторий может быть большим, если он использовался в течение длительного времени и имеет значительную историю. Он также может быть большим, если вы добавили, а затем удалили большие файлы.

Пример конвейера Yaml:

steps:
- checkout: self
  clean: true
  fetchDepth: 1 # Fetch only one commit
  path: PutMyCodeHere

Azure документация devops для как указать fetchDepth в ямльских трубопроводах

...