L'exécution de Groovy commande à partir de Jenkins à l'aide de script Groovy plugin
Je veux de la force scénario suivant dans Jenkins:
- J'ai Un travail et de l'emploi B
- Je veux désactiver travail lorsque le travail B est exécuté, et après l'exécution de la tâche B, je veux permettre d'emploi A de nouveau.
Pour activer/désactiver le boulot, j'ai utilisé Groovy plugin: Groovy plugin
Groovy plugin offre deux possibilités: Exécuter le script Groovy et exécutent le système Groovy script.
J'ai ajouté des extraits de code suivants sur le début de l'exécution de la tâche B:
Jenkins.instance.getItem("job_A").disable()
et après l'exécution de la tâche B:
Jenkins.instance.getItem("job_A").enable()
À l'aide de Exécuter le script Groovy:
Lorsque j'ai exécuté la tâche B, il échoue avec l'exception suivante:
Caught: groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson7198966217090520732
at hudson7198966217090520732.run(hudson7198966217090520732.groovy:1)
À l'aide de exécutent le système Groovy script:
Lorsque j'ai exécuté la tâche B, il échoue avec l'exception suivante:
FATAL: No such property: Jenkins for class: Script1
groovy.lang.MissingPropertyException: No such property: Jenkins for class: Script1
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script1.run(Script1.groovy:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:682)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:666)
at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:80)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.Build$BuildExecution.build(Build.java:199)
at hudson.model.Build$BuildExecution.doRun(Build.java:160)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586)
at hudson.model.Run.execute(Run.java:1576)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:241)
Une idée de ce que pourrait être le problème?
Aussi, lors de l'exécution de ce code des extraits de Jenkins Script Console, il fonctionne sans aucun problème.
Merci à l'avance.
import jenkins.model.Jenkins
en haut de votre script?Il a travaillé avec la combinaison de l'utilisation d'Exécuter le système de script Groovy option. Je ne sais pas pourquoi il ne fonctionne pas avec Execute script Groovy option lorsque cette importation n'est pas reconnu, mais l'option précédente fonctionne pour moi. Apprécié. Merci
OriginalL'auteur Bakir Jusufbegovic | 2013-07-02
Vous devez vous connecter pour publier un commentaire.
Pour les futurs lecteurs, Tim commentaire ci-dessus est la solution:
import jenkins.model.Jenkins
incapable de résoudre classe jenkins.de modèle.Jenkins
OriginalL'auteur agentgonzo
Je pense que si vous exécutez le Système de Script Groovy, Jenkins objets sont disponibles par défaut.
Ce que vous êtes en cours d'exécution est le script groovy. Par conséquent, la nécessité d'importer les packages et classes.
OriginalL'auteur Vijay
J'ai rencontré le même problème "impossible de résoudre classe jenkins.de modèle.Jenkins" comme indiqué par @iloveretards, jusqu'à ce que j'ai réalisé que j'avais essayé d'utiliser l'étape de génération "Exécuter le script Groovy". Après le passage à l'étape de génération "Exécution du système de script Groovy", ce réellement fonctionné comme prévu:
OriginalL'auteur Max Spring