Packages npm avec JFrog CLI
Cet article de blog a été mis à jour le 7 avril 2021.
JFrog CLI est un client compact et intelligent qui fournit une interface simple et simplifie grandement le travail avec JFrog Artifactory. Les commandes simplifiées vous permettent de créer des scripts d’automatisation lisibles, faciles à entretenir, efficaces et fiables.
À partir de la version 1.13.1, JFrog CLI a étendu sa prise en charge pour inclure les packages npm, en plus de sa prise en charge des builds Maven et Gradle. Cet article de blog décrit les commandes npm disponibles fonctionnant avec le client npm pour la gestion de vos builds npm. À l’aide de JFrog CLI, vous pouvez :
- collecter et publier vos informations de build npm sur Artifactory ;
- tracer vos builds facilement une fois les informations de build publiées sur Artifactory ;
- gagner en visibilité sur les dépendances utilisées ;
- générer des informations sur l’environnement build ;
- analyser vos builds à la recherche de vulnérabilités potentielles en connectant JFrog Xray ;
- promouvoir votre build.
Les étapes suivantes vous guideront tout au long du processus complet de mise en place et d’exécution de votre build npm :
- Cloner un projet.
- Définissez la connexion CLI sur vos serveursArtifactory.
- Installez les dépendances du package.
- Publiez le package dans Artifactory.
- Analysez le build.
- Promouvoir le build.
Prérequis :
Avant de commencer, assurez-vous de réaliser ce qui suit.
- Installez JFrog CLI, à l’aide de la commande suivante :
$ curl -fL https://getcli.jfrog.io | sh
- Configurez votre environnement (facultatif, mais recommandé) :
- Téléchargez et installez votre client npm
- Téléchargez la version 5.5.2 et supérieure d’Artifactory.
- Téléchargez Xray.
1. Cloner votre projet
Vous pouvez cloner n’importe quel projet npm. Dans notre exemple, nous avons cloné le projet twbs Bootstrap avec la commande Git suivante :
$ git clone https://github.com/twbs/bootstrap.git
2. Configurer Artifactory avec JFrog CLI
Il suffit d’exécuter la commande suivante :
$ jfrog config
Modifiez le nom, l’URL, le nom d’utilisateur et le mot de passe de votre serveur Artifactory comme suit :
Hourra, la connexion est établie !
3. Configuration des dépôts npm
Exécutez le paramètre de dépôts npm suivant qui configurera nos dépôts npm pour notre build :
$ jfrog rt npmc
Les commandes nous aideront à configurer les dépôts npm comme suit :
4. Installer les packages npm
Exécutez la commande npm install suivante qui fait référence au dépôt virtuel npm en tant que source pour les dépendances :
$ jfrog rt npm-install --build-name=bootstrap --build-number=1.0.0
Cette commande installe le projet et fait référence au dépôt npm en tant que source.
Savoir, c’est pouvoir !
Il est temps de générer des informations. Nous vous recommandons d’ajouter les details Git VCS à l’aide de la commande build-add-git suivante :
$jfrog rt bag bootstrap 1.0.0
En outre, vous pouvez collecter les variables d’environnement à l’aide de la commande build-collect-env suivante :
$jfrog rt bce bootstrap 1.0.0
5. Publier des packages npm
Remarque importante : modifications requises pour les scripts npm existants
Si vous avez déjà des scripts npm, nous vous recommandons de renommer vos scripts pre publish et post publish existants dans le fichier package.json. Lorsque la commande npm-publish s’exécute, JFrog CLI exécute la commande pack en arrière-plan et non la commande publish standard. Si votre package npm inclut les scripts pre publish ou post publish, renommez-les en prepack et postpack, respectivement.
La commande npm publish empaquette et déploie le package npm dans votre dépôt npm dans Artifactory. Vous pouvez également ajouter des indicateurs facultatifs. Par exemple : téléchargez le package sur un autre serveur à l’aide de l’indicateur –server-id.
Pour publier le package, exécutez la commande suivante :
$ jfrog rt npm-publish --build-name=bootstrap --build-number=1.0.0
Nous sommes maintenant prêts à transmettre les informations de build à Artifactory.
Exécutez la commande build publish suivante :
$ jfrog rt bp bootstrap 1.0.0
Le package npm sera maintenant affiché dans Artifactory.
Après avoir exécuté la commande build publish, vous pouvez examiner les informations de build et publier les modules et les variables d’environnement dans Artifactory.
6. Analyser votre build
JFrog Xray travaille avec Artifactory pour effectuer une analyse universelle des composants logiciels binaires à n’importe quelle étape du cycle de vie de l’application. En analysant les composants binaires et leurs métadonnées, en parcourant récursivement les dépendances à tous les niveaux, Xray offre une visibilité sans précédent des problèmes qui se cachent dans les composants, où qu’ils se trouvent dans votre organisation.
Pour analyser votre build à l’aide de Xray, vous devez configurer une nouvelle montre pour le build comme suit :
Il est recommandé d’ajouter une action à la montre. Plusieurs actions peuvent être sélectionnées en cliquant sur Ajouter une action.
JFrog CLI est intégré à JFrog Xray via JFrog Artifactory, ce qui vous permet d’analyser les artefacts de build et les dépendances à la recherche de vulnérabilités et d’autres problèmes. Cette intégration nécessite la version 4.16 et supérieure de JFrog Artifactory et la version 1.6 et supérieure de JFrog Xray.
Pour analyser un build, utilisez la commande suivante :
$ jfrog rt bs bootstrap 1.0.0
6. Promouvoir le build
La promotion de build intervient généralement après le test ou l’analyse de build, en déplaçant ou en copiant éventuellement les artefacts de build et leurs dépendances vers un dépôt cible.
Utilisez la commande build promote pour promouvoir le build dans Artifactory après avoir analysé le build. Vous pouvez ajouter un certain nombre d’indicateurs facultatifs à la commande. Par exemple, les indicateurs –comment et –status.
Pour promouvoir le build, exécutez la commande suivante :
$ jfrog rt bpr bootstrap 1.0.0 npm-virtual
Le build promu dans Artifactory :
Ça y est, vous avez terminé !
Ne manquez pas nos prochains articles sur l’utilisation de JFrog CLI avec Travis CI, ainsi que sur le tri et la limitation des résultats de build.