Lancer Jenkins construire à l'aide de script batch
Je travaille avec un serveur de build Jenkins pour exécuter la synthèse et de la simulation pour les Fpga.
Droit maintenant, j'ai les nightly builds et peut commencer à la construire manuellement dans Jenkins interface de navigateur.
Ma question est:
Est-il possible de commencer une tâche de build avec un script de commandes, sans l'aide d'une interface de navigateur?
(Je suis en cours d'exécution Jenkins sur Windows 7 64 bits.)
OriginalL'auteur michi.b | 2016-04-11
Vous devez vous connecter pour publier un commentaire.
Voici un exemple avec une boucle de commande (pour un travail avec des paramètres):
Et un travail sans paramètres:
Si vous ne souhaitez pas utiliser votre nom d'utilisateur/mot de passe, vous pouvez générer une clé API pour votre Jenkins utilisateur:
Et utiliser ce jeton dans votre commande curl:
Proposé par @tony19 ci-dessous, vous pouvez également générer une clé API pour votre nom d'utilisateur (si vous ne voulez pas utiliser de l'utilisateur/mot de passe). J'ai mis à jour ma réponse. Heureux de savoir qu'il résolu votre problème 🙂
Est-il possible de passer SVN Url avec des paramètres, trop? Il serait bon de dire Jenkins via la ligne de commande pour exécuter une tâche spécifique (dans mon cas de synthèse pour les Fpga) et de validation de tous les projets de SVN. Mon script Python dans Jenkins est capable de courir chaque départ dans l'espace de travail dossier pour le FPGA de synthèse, mais je tiens à garder les choses simples pour mes utilisateurs de commencer les travaux avec un seul lot de fabrication et leurs extractions.
Si vous avez un paramètre par SVN url, vous pouvez les transmettre à l'aide de la ligne de commande (peut-être protégé avec des guillemets).
Ce pourrait être l'occasion, merci! Connaissez-vous d'autres plugins ou des commandes à passer à Jenkins? Est passer des paramètres à une bonne façon de résoudre ce problème?
OriginalL'auteur Bruno Lavit
Vous pouvez déclencher un Jenkins travail avec un configuré jeton à la place de votre nom d'utilisateur/mot de passe, qui vous permettra de partager un déclencheur de script, sans exposer vos propres informations d'identification.
Ensuite utiliser l'URL dans un
curl
de commande pour déclencher un build. Par exemple:La
-I
paramètre indiquecurl
à imprimer à la tête de la réponse, que vous pouvez utiliser pour déterminer l'état du résultat. Jenkins réponses avec HTTP 201 en cas de succès:OriginalL'auteur
Comme j'ai essayé de déclencher mon travail via curl j'ai fini toujours "Non autorisé" erreurs.
Plus tard, j'ai découvert que c'était parce que j'ai complètement désactivé l'accès anonyme sur le serveur. La solution a été d'installer les plugin: https://wiki.jenkins-ci.org/display/JENKINS/Build+Clé+Root+Plugin
Source: https://issues.jenkins-ci.org/browse/JENKINS-17764
OriginalL'auteur keocra
vous pouvez le faire à l'aide de curl de commande avec l'Option-I. créer une clé API pour le jenkins, de l'Emploi et de l'utiliser pour déclencher le travail. vous pouvez utiliser jenkins mot de passe utilisateur.
commande serait
résultats seraient
pour plus d'informations
https://serverfault.com/questions/888176/how-to-trigger-jenkins-job-via-curl-command-remotely/888248#888248
OriginalL'auteur Prabath Dolawatta
Dans le nouveau Jenkins Pipeline, en vertu de Construire des Déclencheurs, sélectionnez la case à cocher Déclencher construit à distance (par exemple, à partir de scripts). Puis donner Jenkins, un jeton qui sera nécessaire lors du déclenchement de la construction.
Not authorized
erreursUn problème avec le déclenchement de la construit à distance est, si vous avez mis en place Jenkins droit et désactivé l'accès des utilisateurs anonymes, vous obtiendrez
Not authorized
des erreurs lorsque vous essayez de déclencher le construire à partir d'un script (comme @keocra souligné). Vous avez maintenant deux options:Le déclenchement de la construction
Pour déclencher le construire à distance, exécutez
Où
JENKINS_URL
est l'URL de votre instance Jenkins,JobFoo
est le nom de votre travail, etMyToken
est le jeton que vous avez entré sous Déclencher bulids à distance.De sûr, vous n'avez pas besoin d'utiliser
curl
; vous pouvez également utiliserwget
ou tout autre programme qui peut faire des requêtes HTTP.OriginalL'auteur jpyams