web-dev-qa-db-fra.com

Intégration de Jenkins avec Grunt

J'ai configuré Jenkins v1.550 sur Windows Server 2008 R2. Il fonctionne comme un service à http://localhost:8080 pour l'instant. Je suis connecté à la machine en tant qu'administrateur. J'ai installé Node.js et je peux exécuter "npm" à partir de la ligne de commande.

J'ai également installé le plugin NodeJS v0.2.1 pour Jenkins. Je suis ensuite allé dans la section Configurer le système de Jenkins, j'ai fait défiler la liste jusqu'aux installations NodeJS, j'ai cliqué sur le bouton Ajouter NodeJS, j'ai donné "NodeJS" comme nom et "C:\Program Files\nodejs" comme chemin d'accès au répertoire d'installation. Je n'ai pas coché l'option "Installer automatiquement" car j'ai lu sur la page du plugin qu'elle n'est disponible que pour Linux.

J'ai ensuite créé un nouveau travail, cliqué sur la case à cocher qui indique "Fournir Node & npm bin/dossier à PATH", créé une nouvelle étape de construction pour "Exécuter la commande par lots de Windows" et tapé "nœud --version "et" grunt --version "et enregistré.

J'ai couru le travail et c'est la sortie -

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test_1.0
[Test_1.0] $ cmd /c call C:\Windows\TEMP\hudson1381541243088903083.bat

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>node --version 
v0.10.24

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>grunt --version 
'grunt' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>exit 9009 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

Il semble qu'il ne soit pas en mesure de trouver le grunt-cli pour le compte d'utilisateur que Jenkins exécute sous (Système). J'ai essayé d'installer grunt cli globalement (npm install -g grunt-cli) et aussi grogner localement (npm install grunt). Pas de chance.

Puis-je avoir une aide s'il vous plait?

19
tempid

pour Nice facile à configurer les nodejs auto-installés sur la machine, je dois recommander l'excellent -> http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

il installera nodejs et grunt sur la machine, via un frontal web facile à utiliser sans Shell requis

les travaux jenkins peuvent alors simplement exécuter les étapes de construction de nodejs, hé presto

étapes impliquées:

a) installez ceci sur votre instance jenkins -> http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

b) créer une installation nodejs sur jenkins

aller à

http://URL_OF_JENKINS/jenkins/configure
  • NodeJS-> Installations NodeJS -> Ajouter NodeJS -> Nom = "NodeJS 0.11.10", cochez "Installer automatiquement", sélectionnez "Installer à partir de nodejs.org", ajoutez "grunt-cli" aux packages installés globalement

c) créer un travail avec la tâche de construction "exécuter le script NodeJS"

var sys = require('sys');
sys.puts('NodeJS Test');
sys.puts('***************');
sys.puts('helloworld');

volia :)

exécuter le travail et voir le script nodejs s'exécuter,

de leur monde, c'est votre huître que vous pouvez utiliser grognement en cochant "Fournir le dossier bin Node/npm à PATH" et en exécutant une tâche de construction "Exécuter Shell"

npm update
grunt
grunt --force reporting
22
aqm

Vous devrez redémarrer le service Jenkins après avoir installé le nœud, probablement pour le faire actualiser sa copie en cache de votre variable d'environnement PATH

6
Andrew Bullock

J'ai du grognement en train de faire quelques tâches pour moi dans Jenkins, mais j'ai suivi la route du script npm. Grunt et grunt-cli sont des dépendances de développement, et j'ai défini ce qui suit dans mon fichier package.json:

"scripts": {
    "test": "node node_modules/grunt-cli/bin/grunt test"
},

Dans Jenkins (fonctionnant sous Windows), j'ai ajouté deux tâches post-build:

npm install

npm test

Nous venons d'installer NodeJs normalement sur le serveur Jenkins.

5
Stuart

Eu le même problème sur Windows. Lorsque j'ai installé manuellement le nœud et exécuté npm install -g grunt-cli à partir de la ligne de commande, jenkins n'a pas pu reconnaître la commande grunt. Désinstallez donc le nœud, réinstallez-le mais ne lancez pas l'installation de npm. Redémarrez ensuite l'esclave Jenkins. Ensuite, à partir du travail jenkins qui s'exécute sur votre esclave jenkins spécifique, faites-lui exécuter une commande batch Windows qui s'exécute npm install -g grunt-cli Après cela, redémarrez à nouveau le service jenkins. Puis à partir de l'exécution du travail npm install. Ensuite, tout a fonctionné pour moi. Si les problèmes persistent, désinstallez l'esclave et réinstallez-le, tout fonctionne correctement immédiatement.

1
vanval

Une autre solution qui a fonctionné pour moi sur Windows consiste à utiliser le chemin d'accès complet au fichier exécutable grunt, qui peut être trouvé en écrivant "where grunt" dans la commande Shell. J'ai utilisé le chemin complet dans le fichier bat normal.

1
user3114859