Exécuter la commande Groovy de Jenkins en utilisant le plugin de script Groovy

je veux de la force scénario suivant dans Jenkins:

  1. j'ai Un travail et de l'emploi B
  2. je veux désactiver le travail a quand le travail B est exécuté, et après l'exécution du travail B, je veux activer à nouveau le travail a.

pour activer/désactiver job a, j'ai utilisé Groovy plugin: Groovy plugin

Groovy plugin offre deux possibilités: Execute Groovy script et Exécution du système de script Groovy .

j'ai ajouté les extraits de code suivants au début de l'exécution de la tâche B:

Jenkins.instance.getItem("job_A").disable()

et après l'exécution du travail B:

Jenkins.instance.getItem("job_A").enable()

à l'Aide Exécuter le script Groovy :

quand j'ai dirigé job B, il échoue avec l'exception suivante:

Caught: groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson7198966217090520732
    at hudson7198966217090520732.run(hudson7198966217090520732.groovy:1)

Utilisant Exécuter système Groovy script :

quand j'ai dirigé job 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.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 du problème? En outre, lorsque vous exécutez ces extraits de code à partir de la console de script Jenkins, cela fonctionne sans problème. Merci à l'avance.

9
demandé sur Bakir Jusufbegovic 2013-07-02 19:02:43
la source

2 ответов

pour les futurs lecteurs, Le Commentaire de Tim ci-dessus est la solution:

import jenkins.model.Jenkins

23
répondu agentgonzo 2016-06-14 14:59:26
la source

je pense que si vous exécutez le script de Groovy du système, les objets Jenkins sont disponibles par défaut. Ce que vous exécutez est le scénario groovy. Il est donc nécessaire d'importer les paquets/classes.

1
répondu Vijay 2016-05-09 18:36:27
la source

Autres questions sur