Nx Console и Nx Cloud

Jan 18 2023
Мы только что выпустили Nx Console 17.28.

Мы только что выпустили Nx Console 17.28.0, и она поставляется с огромной новой функцией: Nx Cloud Integration прямо в VSCode!

Если вы не знаете, что он делает, Nx Cloud выводит ваше рабочее пространство Nx на новый уровень благодаря потрясающим функциям, таким как:

  • Удаленное кэширование — поделитесь своим кэшем Nx со своими коллегами и агентами CI. Используя Nx Cloud, вы можете быть уверены, что никакие вычисления не будут выполняться дважды — во всей вашей компании.
  • Распределенное выполнение задач — самая важная функция для реального масштабирования репозиториев. Nx уже знает о графе вашего проекта и о том, какие задачи зависят друг от друга. С Nx Cloud вы можете использовать эти знания для разумного распределения задач между несколькими агентами, следя за тем, чтобы все выполнялось в правильной последовательности. Это может ускорить время CI на порядки!
  • Интеграция с VCS [системой контроля версий] — смотрите результаты запуска вашей CI прямо в запросе на включение! Nx Cloud может общаться с GitHub и другими системами контроля версий в режиме реального времени, предоставляя вам обзор успехов и неудач по мере их возникновения.

Перейдите на сайт nx.app , чтобы узнать больше.

Предпочитаете видеопрохождение? Вот так

Покажи мне уже новые возможности!

Теперь, когда мы закончили, давайте посмотрим, как Nx Console сделает подключение к Nx Cloud и работу с ним еще проще.

Чтобы продолжить, убедитесь, что у вас установлена ​​последняя версия консоли Nx:
Консоль Nx — Visual Studio Marketplace

На боковой панели Nx вы увидите новый раздел Nx Cloud.

Если ваше рабочее пространство не использует Nx Cloud, нажмите кнопку «Настроить Nx Cloud», чтобы автоматически настроить облачный бегун.

Вы увидите, что в вашем nx.json:

"default": {
- "runner": "nx/tasks-runners/default",
+ "runner": "@nrwl/nx-cloud",
  "options": {
+   "accessToken": "NDM2MmU2YmUtNDFl…ifHJlYWQtd3JpdGU=",
    "cacheableOperations": [
      "build",
      "lint",
      "test",
      "e2e"
    ],
   }
 }

Выполнение первой задачи

Давайте попробуем! Выберите задачу для запуска и просмотрите результаты в списке выполнения. Вы можете получить еще более подробную информацию в веб-приложении Nx Cloud.

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

Чтобы увидеть его в действии, отправьте только что созданный токен доступа и попросите коллегу (или конвейер CI) запустить задачу на своем компьютере. Если вы снова выполните ту же задачу, она будет извлечена из кеша точно так же, как локально!

Чтобы узнать больше о токенах доступа Nx Cloud, перейдите к документации: Access Tokens Documentation .

Заявка на свое рабочее место

Если вы только начали использовать Nx Cloud, вы, вероятно, увидите это сообщение, предлагающее вам заявить права на свое рабочее пространство:

Из коробки Nx Cloud работает без необходимости регистрации. Однако настоятельно рекомендуется создать учетную запись и связать ее со своей рабочей областью. Этот процесс называется захватом рабочего пространства , и с Nx Console он стал намного проще! После подачи заявления вы можете получить полный контроль над своим облачным рабочим пространством, управлять ограничениями доступа и другими настройками.

Просто нажмите «Войти и заявите права на свое рабочее пространство», чтобы перейти в браузер, где вы сможете войти в Nx Cloud или создать учетную запись. После успешной аутентификации вы вернетесь в VSCode, где сможете выбрать одну из своих организаций и подключить к ней свое рабочее пространство.

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

Распределенное выполнение задач

Распределенное выполнение задач (DTE) становится очень важным по мере роста вашего рабочего пространства. Благодаря мощным функциям Nx, таким как кэширование вычислений и затронутый анализ, вы можете значительно сократить время CI. Большую часть времени большие части вашей кодовой базы не нужно будет перестраивать и повторно тестировать. Тем не менее, мы также должны рассмотреть наихудшие сценарии. Допустим, вы изменили основную библиотеку, от которой зависит все в вашем монорепозитории. Это может означать необходимость пересборки и повторного тестирования сотен или даже тысяч проектов, что потребует часов времени CI. Очевидно, что это очень непрактично, и вам следует подумать о решениях, которые позволят вам распараллелить всю эту работу и сохранить время CI в наихудшем случае на разумном уровне. Существуют разные подходы к достижению этогоно это трудно сделать правильно, и это не то, на что большинство команд хотят тратить инженерные ресурсы.

Распределенное выполнение задач с Nx Cloud решает эту проблему — позволяет оптимально распараллеливать задачи, не задумываясь об их взаимозависимости или управлении агентами. Вам не обязательно использовать его сразу, но он полезен, если вы хотите поддерживать минимальное время CI даже по мере роста вашего рабочего пространства.

DTE доступно для всех рабочих пространств Nx Cloud с минимальной настройкой. Если вы видите желтый статус DTE в консоли Nx, это просто означает, что вы еще не использовали его. Ознакомьтесь с документацией , чтобы узнать больше о мотивации для DTE и о том, как протестировать его в своей рабочей области .

Интеграция с системой контроля версий

Nx Cloud не только отлично подходит для удаленного кэширования и функций DTE, но также создает удобочитаемые отчеты с возможностью поиска для любых выполненных задач — будь то 10 или 10 000. В монорепозитории ваши конвейеры CI редко будут выполнять только одну задачу. Чаще встречаются такие команды, как nx affected — -target=build«перестроить все, что изменилось». Потенциально это могут быть десятки, сотни или тысячи задач. Если что-то пойдет не так, просмотр тысяч и тысяч строк журналов быстро станет утомительным. Таким образом, иметь красиво структурированное представление для каждой цели, которое вы можете фильтровать и сортировать, сохраняя при этом все стили терминала, невероятно полезно!

Чтобы воспользоваться этой ценной информацией, не меняя рабочий процесс разработки, используйте интеграцию Nx Cloud с вашей любимой платформой: Github, GitLab или Bitbucket Cloud. Вы можете увидеть результаты своих запусков в облаке в PR-комментарии с обзором невыполненных задач и ссылками на легко читаемые результаты. Больше не нужно пролистывать бесконечные журналы, пока не найдете то, что вам нужно!

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

Узнать больше

- [Nx Документы](https://nx.dev/)
- ‍ [Nx GitHub](https://github.com/nrwl/nx)
- [Консоль Nx GitHub](https://github.com/nrwl/nx-console)
- [Nx Community Slack](https://go.nrwl.io/join-slack)
- [Канал Nx Youtube](https://www.youtube.com/@nxdevtools)

Кроме того, если вам это понравилось, нажмите и не забудьте подписаться на Max и Nx в Twitter, чтобы узнать больше!