использоватьJenkins
Выполнять автоматизированное построение удобно и экономит время, а развертывание внешнего и внутреннего проектов можно выполнить с помощью простой настройки.
1. Сообщение об ошибке:
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,004 ms]
2. Причина ошибки
Справочный блог
использоватьJenkins
Например, когда задачи развертывания во внешнем интерфейсе проекта обычно состоят из следующих шагов:
- 1, из
git
Соответствующая ветка тянет код - 2. Установите сторонние зависимости проекта
(npm install or cnpm install or yarn install)
- 3. Тестирование кода проекта или компиляция и создание рабочей среды
(npm run build or cnpm run build)
- 4. Запускаем сервис проекта (тут вообще
node server
)
Шаги 2 и 3 занимают много времени. В основном это связано с тем, что вполне возможно, что время сборки для шага 3 превышаетJenkins
Установите время сборки (120000 мс), в результате чегоJenkins
Время сборки истекло и прервано.
Давайте посмотримJenkins
конфигурация по умолчанию
Каждый шаг сборки по умолчанию120000 ms
период тайм-аута. По истечении времени соответствующего шага сборки сборка прервется со следующим сообщением об ошибке.
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,004 ms]
3. Решения
установить на этапе сборки, который может истечь по тайм-аутуExec timeout(ms)
Разумное количество времени, чтобы предотвратить истечение времени ожидания этапов сборки при отметкеExec in pty
Пусть консоль своевременно выводит соответствующую информацию журнала.
4. Расширение проблемы
разбор командыcd deploy/merc && ls | grep -v node_modules | xargs rm -r
Первая страница делит команду на разделы
- 1. cd deploy/merc указывает текущий каталог для deploy/merc
- 2. ls | grep -v node_modules Найти каталоги или файлы, отличные от node_modules в каталоге
- 3. LS | GREP -V Node_Modules | XARGS RM -R Найти и удалить каталоги или файлы, кроме Node_Modules в каталоге
Если каталог или файл не могут быть отфильтрованы на втором этапе, операция удаления на третьем этапе не может быть выполнена, поэтому будет сообщено следующее сообщение об ошибке
cd deploy/merc && ls | grep -v node_modules | xargs rm -r
rm: missing operand //操作对象不存在
Try `rm --help' for more information.
Вторая строка сообщает об ошибке: Объект операции не существует.
Основная цель этой команды — получить последний код с настроенного адреса git до того, как Jenkins соберет проект, чтобы убедиться, что код, развертываемый каждый раз, актуален. Тогда зачем исключать каталог node_modules? node_modules — это сторонний пакет зависимостей проекта. Загрузка файла относительно большая и медленная. Чтобы обеспечить время создания каждого проекта, этот каталог зарезервирован. Эта команда тоже не нужна.Решение проблемы в том, чтобы не выполнять сначала эту команду, потом один раз построить, а потом добавить эту команду.