15

Jenkinsで次のシナリオを強制したい:

  1. 仕事Aと仕事Bがあります
  2. ジョブBの実行時にジョブAを無効化し、ジョブBの実行後にジョブAを再度有効化したい。

ジョブ A を有効/無効にするために、Groovy プラグインを使用しました: Groovy プラグイン

Groovy プラグインには、Groovy スクリプトの実行 と システム Groovy スクリプト実行の 2 つの可能性があります。

ジョブ B の実行開始時に次のコード スニペットを追加しました。

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

ジョブ B の実行後:

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

Groovyスクリプトの実行を使用:

ジョブ B を実行すると、次の例外で失敗します。

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

実行システム Groovy スクリプトの使用:

ジョブ B を実行すると、次の例外で失敗します。

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)

何が問題なのですか?また、Jenkins スクリプト コンソールからこのコード スニペットを実行すると、問題なく動作します。前もって感謝します。

4

4 に答える 4

38

将来の読者のために、上記のティムのコメントが解決策です。

import jenkins.model.Jenkins

于 2015-12-29T13:15:58.443 に答える