我想在詹金斯中强制执行以下场景:
为了启用/禁用作业A,我使用了Groovy插件:Groovy插件
Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本。
在开始执行作业B时,我添加了以下代码片段:
Jenkins.instance.getItem("job_A").disable()
执行工作B后:
Jenkins.instance.getItem("job_A").enable()
当我运行作业B时,它失败了,出现以下异常:
Caught: groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson7198966217090520732
at hudson7198966217090520732.run(hudson7198966217090520732.groovy:1)
当我运行作业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)
有什么问题吗?另外,当运行詹金斯脚本控制台的代码片段时,它没有任何问题。事先谢谢。
我认为如果您运行System Groovy脚本,Jenkins对象默认可用。您正在运行的是groovy脚本。因此,需要导入包/类。
我遇到了@iloveretards评论的“无法解析类jenkins.model.jenkins”这个问题,直到我意识到我试图使用构建步骤“执行Groovy脚本”。切换到构建步骤“执行系统Groovy脚本”后,这实际上按预期工作:
import jenkins.model.Jenkins
Jenkins.instance.getItem("job-name").disable()
对于未来的读者,蒂姆的上述评论是一个解决方案:
导入詹金斯。模型詹金斯
问题内容: 我是Jenkins中使用的Groovy脚本的新手。我的问题是,我们如何根据作业名称和内部版本号获取作业的时间戳? 示例 :我想获取“ MyDeployJob”(JobName)的时间戳,并获取BuildNumber-105的时间戳。 我尝试使用方法方法,但无法正常工作。另外,我发现环境变量具有时间戳,但是我无法弄清楚如何使用Groovy Script获取细节。请帮助。 提前致谢。 问题
问题内容: 该插件的网站说,您可以创建一个常规脚本来运行以确定参数列表。 怎么解决呢?指示什么也没说。 该脚本在什么情况下运行? 我应该从脚本中返回什么? 脚本的cwd是哪个目录?是环境变量WORKSPACE吗? 还有一个名为的额外字段。如何使用? 问题答案: 我必须深入研究源代码才能找到这些问题的答案,所以我希望这对其他人有帮助。 1.脚本在什么情况下运行? 该脚本在groovy.lang.Gr
我对是否可以在从属节点中使用Groovy脚本运行Jenkins作业感到困惑。我提到了一个 StackOverflow 答案 [1],它说 System Groovy 脚本作业可以在主站而不是从站中运行,并且要在从站中运行作业,它必须是 Groovy 脚本而不是 System Groovy 脚本。有人可以澄清我是否可以使用系统时髦脚本运行从属作业吗?由于我正在尝试通过Groovy脚本,因此无法访问几
我想通过使用@Grab运行java类的main方法,以便自动处理需求。更具体地说,我希望运行pdfbox示例https://github.com/apache/pdfbox/blob/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/removeAlltext.java 我编写了以下groovy脚本 main的@grab,im
我知道我可以通过Jenkins RTC插件使用scm轮询,我只是想知道是否有一个如何通过管道插件的groovy脚本做到这一点的例子? 例如: 类似于上面的内容,但不是git,而是将rtc toolkit与prod url一起使用,并指定一个流或一个工作区。。。在任何地方都找不到示例,也不确定如何通过api实现它(或者如果可能的话?)
问题内容: 当我尝试在Jenkins控制台中执行以下Groovy脚本时,发生以下错误。 这已从“ 使用Jenkins”>“ Jenkins脚本控制台”>“参数化系统Groovy脚本”中获取。 该错误表明它包含一些缺少的属性: 我已经尝试使用Groovy脚本插件从Jenkins运行RunningGroovy命令,但在我的情况下不起作用。 问题答案: 如果我→ 执行系统Groovy脚本 → Groov