Comment puis-je configurer Jenkins description de compilation, tout en déclenchant construire via curl?
Je suis en train de définir la description de compilation d'une construction, je suis de déclenchement, comme je suis coups de pied au large de la construire, et je n'ai pas de chance jusqu'à présent.
Je suis tombé sur une solution (L'ajout de texte à la page de l'accumulation déclenchée par le Jenkins API à distance), et j'ai commencé à travailler de cette façon (première commande sera le coup d'envoi de la construction, la seconde va définir la description de la dernière build):
curl -v -X POST "http://[myServer]/job/[jobName]/build"
curl -v -X POST "http://[myServer]/job/[jobName/lastBuild/submitDescription" --data-urlencode "description=test description"
Cependant, le problème est que si la construction, je viens de débuté obtient en file d'attente /n'est pas un coup de pied du droit de suite", lastBuild" ne sera pas référence à la construction, je viens de débuté, mais à celle qui la précède (qui est encore en construction).
J'ai donc essayé quelque chose comme ceci:
payload='json={""description"":""test description""}'
curl -v -X POST -H "Content-Type: application/json" -d $payload "http://[myServer]/job/[jobName]/build"
Mais il ne fait pas de définir la description.
Des idées comment cela peut être réalisé?
D'autres solutions que j'ai trouvé, mais je ne suis pas vraiment heureux avec:
- Changer de Build Jenkins Nom & Description par le biais de l'API en JAVA - qui est également un "post-trigger solution" qui ne fonctionne pas de manière fiable même que le juste réglage de la description de l'après
- La modification de Jenkins Description pour construire un - Je suppose que je pourrais construire dans une case, et seulement modifier la description lorsqu'elle est vide, donc je ne pas le remplacer, mais qui semble plutôt compliqué. Je pense il doit y avoir une solution plus facile, non?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez toujours avoir une variable et de passer à la description de compilation dans la variable relative à la première invocation. Puis à la fin de votre construction, la variable de sortie de la console et de l'attraper avec Description Setter plugin.
Edit pour préciser:
echo Desc: $MyDescription
ouecho Desc: %MyDescription%
, selon votre système d'exploitation.^Desc: (.*)
\1
curl -v -X POST --data-urlencode "MyDescription=This is my desc" "http://[myServer]/job/[jobName]/buildWithParameters"
(celui ci-dessus est une ligne)
J'ai eu le même besoin - définir la description de compilation dès que la construction commence.
Notez que le Construire Description Setter plugin est activé en tant que post-construire l'action qui est trop tard pour moi.
La façon dont je l'ai résolu par un changement mineur à la configuration d'un travail et d'un script Python (mais peut être dans n'importe quelle langue):
Fait le script comme suit:
Travaille tout le temps, sauf lorsque la construction est mis en file d'attente (pas de libre exécuteurs sont disponibles) et le délai défini ci-dessus expire - il n'y a rien que je puisse faire.
Pour les personnes souhaitant utiliser le Jenkins UI, je suis en train d'essayer:
La Postbuild plugin est beaucoup plus puissant, mais nécessite Groovy bricolage et permanentes.
Une autre solution, avec "Exécuter Groovy Système de script" :
mon téléchargement:
mon statusMessage méthode: