Nx Console rencontre Nx Cloud

Jan 18 2023
Nous venons de publier Nx Console 17.28.

Nous venons de publier Nx Console 17.28.0 et il est livré avec une énorme nouvelle fonctionnalité : Nx Cloud Integration, directement dans VSCode !

Au cas où vous n'êtes pas sûr de ce qu'il fait, Nx Cloud fait passer votre espace de travail Nx au niveau supérieur avec des fonctionnalités impressionnantes telles que :

  • Mise en cache à distance — partagez votre cache Nx avec vos collègues et agents CI. En utilisant Nx Cloud, vous pouvez être sûr qu'aucun calcul n'est effectué deux fois - dans toute votre entreprise.
  • Exécution de tâches distribuées - la fonctionnalité la plus importante pour une véritable mise à l'échelle des référentiels. Nx connaît déjà le graphe de votre projet et quelles tâches dépendent les unes des autres. Avec Nx Cloud, vous pouvez tirer parti de ces connaissances pour répartir intelligemment les tâches entre plusieurs agents tout en vous assurant que tout est exécuté dans le bon ordre. Cela peut accélérer vos temps de CI de plusieurs ordres de grandeur !
  • Intégration VCS [système de contrôle de version] - voyez les résultats de vos exécutions CI directement sur votre demande d'extraction ! Nx Cloud peut communiquer avec GitHub et d'autres systèmes de contrôle de version en temps réel, vous donnant un aperçu des succès et des échecs au fur et à mesure qu'ils se produisent.

Rendez-vous sur nx.app pour en savoir plus.

Vous préférez une présentation vidéo ? Nous y voilà

Montrez-moi déjà les nouvelles fonctionnalités !

Maintenant que nous sommes rattrapés, voyons comment Nx Console facilitera encore plus la connexion et l'utilisation de Nx Cloud.

Pour continuer, assurez-vous d'avoir installé la dernière version de Nx Console :
Nx Console — Visual Studio Marketplace

Dans la barre latérale Nx, vous verrez une nouvelle section Nx Cloud.

Si votre espace de travail n'utilise pas Nx Cloud, cliquez sur le bouton « Configurer Nx Cloud » pour configurer automatiquement le Cloud Runner.

Vous verrez que certains changements se produisent dans votre nx.json:

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

Exécuter votre première tâche

Essayons-le ! Sélectionnez une tâche à exécuter et consultez les résultats dans la liste d'exécution. Vous pouvez obtenir une ventilation encore plus détaillée dans l'application Web Nx Cloud.

Si vous réexécutez la même tâche, vous pouvez voir que le temps qu'il a fallu pour terminer est inférieur à une seconde. Cela est dû à la mise en cache de calcul avancée de Nx . Chaque fois qu'une tâche est exécutée, Nx la met en cache. Si la tâche a déjà été exécutée, elle restaure simplement le résultat à partir du cache. Par défaut, ce cache est local sur votre propre poste de travail. Cependant, avec Nx Cloud, vous pouvez le distribuer et le partager entre les machines.

Pour le voir en action, poussez votre jeton d'accès nouvellement créé et demandez à un collègue (ou pipeline CI) d'exécuter une tâche sur sa machine. Si vous exécutez à nouveau la même tâche, elle sera extraite du cache comme elle l'a fait localement !

Pour en savoir plus sur les jetons d'accès Nx Cloud, rendez-vous sur la documentation : Access Tokens Documentation .

Revendiquer votre espace de travail

Si vous venez de commencer à utiliser Nx Cloud, vous verrez probablement ce message vous invitant à réclamer votre espace de travail :

Prêt à l'emploi, Nx Cloud fonctionne sans qu'il soit nécessaire de s'inscrire. Il est cependant fortement recommandé de créer un compte et de l'associer à votre espace de travail. Ce processus s'appelle réclamer votre espace de travail et est devenu beaucoup plus facile avec Nx Console ! Après avoir réclamé, vous pouvez prendre le contrôle total de votre espace de travail cloud, gérer les restrictions d'accès et d'autres paramètres.

Cliquez simplement sur "Connexion et revendiquez votre espace de travail" pour être redirigé vers le navigateur où vous pourrez vous connecter à Nx Cloud ou créer un compte. Après une authentification réussie, vous reviendrez à VSCode, où vous pourrez sélectionner l'une de vos organisations et y connecter votre espace de travail.

À partir de maintenant, Nx Console pourra faire des requêtes authentifiées à l'API cloud, donc même si vous choisissez de rendre votre espace de travail privé, les utilisateurs connectés qui sont autorisés à y accéder peuvent le faire.

Exécution de tâches distribuées

L'exécution de tâches distribuées (DTE) devient très importante à mesure que votre espace de travail se développe. Avec Nx, des fonctionnalités puissantes telles que la mise en cache des calculs et l'analyse affectée vous aident à réduire considérablement vos temps de CI. La plupart du temps, de grandes parties de votre base de code n'auront pas besoin d'être reconstruites et retestées. Cependant, nous devons également envisager les pires scénarios. Disons que vous modifiez une bibliothèque principale dont tout dépend dans votre monorepo. Cela pourrait signifier des centaines voire des milliers de projets devant être reconstruits et retestés, ce qui signifierait des heures de temps de CI. Ceci est évidemment très peu pratique et vous devriez envisager des solutions qui vous permettent de paralléliser tout ce travail et de maintenir les temps CI dans le pire des cas à un niveau raisonnable. Il existe différentes approches pour y parvenirmais c'est difficile à faire et ce n'est pas quelque chose pour lequel la plupart des équipes veulent dépenser des ressources d'ingénierie.

L'exécution de tâches distribuées avec Nx Cloud résout ce problème - il vous permet de paralléliser de manière optimale les tâches sans vous soucier de leurs interdépendances ou de la gestion des agents. Vous n'êtes pas obligé de l'utiliser immédiatement, mais il est utile si vous souhaitez maintenir vos temps de CI bas même lorsque votre espace de travail s'agrandit.

DTE est disponible pour tous les espaces de travail Nx Cloud avec une configuration minimale. Si vous voyez un statut DTE jaune dans Nx Console, cela signifie simplement que vous ne l'avez pas encore utilisé. Consultez la documentation pour en savoir plus sur la motivation du DTE et sur la façon de le tester dans votre espace de travail .

Intégration VCS

Nx Cloud n'est pas seulement génial pour ses fonctionnalités de mise en cache à distance et DTE, il génère également des rapports lisibles et consultables pour toutes les tâches exécutées, qu'il s'agisse de 10 ou 10 000. Dans un monorepo, vos pipelines CI exécuteront rarement une seule tâche. Il est plus courant d'avoir des commandes comme nx affected — -target=buildqui revient à « reconstruire tout ce qui a changé ». Cela pourrait potentiellement être des dizaines, des centaines ou des milliers de tâches. Si quelque chose ne va pas, passer au peigne fin des milliers et des milliers de lignes de journaux devient rapidement fastidieux. Donc, avoir une vue bien structurée par cible que vous pouvez filtrer et trier tout en préservant tout le style du terminal est incroyablement utile !

Pour tirer parti de ces précieuses informations sans modifier votre workflow de développement, utilisez l'intégration Nx Cloud pour votre plateforme préférée : Github, GitLab ou Bitbucket Cloud. Vous pouvez voir les résultats de vos exécutions dans le cloud dans un commentaire PR avec un aperçu des tâches ayant échoué et des liens vers des sorties facilement lisibles. Plus besoin de faire défiler des journaux sans fin jusqu'à ce que vous trouviez ce dont vous avez besoin !

Pour le configurer, cliquez simplement sur le bouton dans la vue cloud de la console Nx et suivez les instructions de votre navigateur. En savoir plus dans le guide complet sur la connexion de votre espace de travail à VCS.

Apprendre encore plus

- [Nx Docs](https://nx.dev/)
- ‍ [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Console GitHub](https://github.com/nrwl/nx-console)
- [Nx Community Slack](https://go.nrwl.io/join-slack)
- [Chaîne Youtube Nx](https://www.youtube.com/@nxdevtools)

De plus, si vous avez aimé cela, cliquez sur et assurez-vous de suivre Max et Nx sur Twitter pour en savoir plus !