NPM CI занимает различное количество времени на одном и том же конвейере Jenkins. - PullRequest
0 голосов
/ 01 октября 2019

У меня есть конвейер, работающий на Jenkins, который делает несколько шагов, прежде чем запускать тесты lint, unit и интеграционные. Одним из таких шагов является установка зависимостей. Это сделано с помощью npm ci.

Я пытаюсь выяснить, что заставляет этот шаг занимать различное количество времени, иногда это составляет около 15 секунд, иногда более 1 минуты. К сожалению, было трудно найти что-либо в Интернете, что объясняет это случайное поведение.

Конвейер работает на той же базе кода, поэтому никаких изменений нетбыли сделаны с зависимостями.

Было бы очень полезно, если бы кто-то мог объяснить, что является причиной этого различия, или указать мне на ресурс, который мог бы помочь.

1 Ответ

2 голосов
/ 01 октября 2019

Это ожидаемое поведение, и вы не должны ожидать, что всегда будет одинаковое количество времени.

Существует множество факторов при установке модулей узла, например

  • Сервер реестра NPM может быть занятозначает больше laod, так что вы можете ожидать задержки
  • Например, статистика вашего локального сервера, а что если ваш процессор jenkins равен 100%, то можно ли ожидать постоянного времени установки?
  • Сетевой трафик и т. д.

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

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

enter image description here

Если вы ненавидите задержку, вы можете настроить свой собственный реестр NPM .

Verdaccio - это простая, с нулевой конфигурациейтребуется локальный частный реестр npm. Не нужно всю базу данных, чтобы начать! Verdaccio выходит из коробки с собственной крошечной базой данных и возможностью прокси-регистрации других реестров (например, npmjs.org), кэшируя загруженные модули по пути. Для тех, кто хочет расширить свои возможности хранения, Verdaccio поддерживает различные плагины, созданные сообществом, для подключения к таким сервисам, как Amazon s3, Google Cloud Storage или для создания собственного

...