问题标签 [jenkins-groovy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Groovy 和 StreamAPI 的意外 GroovyCastException
我在构建期间执行的 Jenkinsfile 中运行以下 groovy 脚本:
上述代码对参数值的预期结果等于:
是:
但是,当在 Jenkins 上执行此代码时,我收到一个我无法理解的奇怪错误(为什么会发生):
hudson.remoting.ProxyException:org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法在 org.codehaus.groovy.runtime 将对象“SampleValue1”与“java.lang.String”类转换为“java.util.Collection”类.typehandling.DefaultTypeTransformation.continueCastOnSAM(DefaultTypeTransformation.java:405) 在 org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnNumber(DefaultTypeTransformation.java:319) 在 org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnCollection(DefaultTypeTransformation .java:267) 在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:603) 在 org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:219) 在 Unknown。未知(未知)在cps.transform(本机方法)在 com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.set(LocalVariableBlock.java:45) 在 com.cloudbees.groovy.cps.impl.AssignmentBlock$ContinuationImpl.assignAndDone(AssignmentBlock.java:70)在 sun.reflect.GeneratedMethodAccessor303.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.cloudbees.groovy .cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39) at com.cloudbees.groovy.cps.LValueBlock $GetAdapter.receive(LValueBlock.java:30) 在 com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28) 在 com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55) at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16) at com.cloudbees.groovy.cps.Next.step( Next.java:83) 在 com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174) 在 com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163) 在 org.codehaus .groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122) at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261) at com.cloudbees.groovy.cps.Continuable.run0(Continuable .java:163) 在 org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19) 在 org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:35) 在org.jenkinsci。plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:32) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) at org.jenkinsci.plugins.workflow.cps .SandboxContinuable.run0(SandboxContinuable.java:32) 在 org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174) 在 org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java :331) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:243) at org. jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:231) 在 org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) 在 java.util。concurrent.FutureTask.run(FutureTask.java:266) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at java.util.concurrent .Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java. util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)28) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor) 的 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) .java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)28) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor) 的 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) .java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
有任何想法吗?
groovy - 从 JSON ARRAY(地图列表)中查找/过滤具有特定键值对的列表
我有一个 JSON 数组(地图列表),类似于:
1) 我想获取/过滤/返回所有包含键值对“ METHOD:CLICK ”和“ RESULT:FAIL ”的列表
2)我想获得包含键值对“ METHOD:CLICK ”和“ RESULT:FAIL ”的列表计数
3)从上面的地图列表中,我想获取键“ METHOD ”的所有唯一/不同值
bash - Jenkins 管道中的 MultipleCompilationErrorsException 因为字符转义问题,你能找到问题吗?
我正在编写一个 Jenkins 管道,它在 AWS ECS 上构建一个 docker 主机。
在 build.gradle 我有以下几行:
该作业配置了一个默认的环境参数dev,那么这三行是正确的。
我的任务是使这项工作能够部署到所有环境。
在 gradle 任务开始运行之前,如果环境名称不是“dev”,我需要更改这 3 行以向 dockerImageName 添加前缀。
例子:
此值:“ubi-celery-worker”需要更改为:“product-env-ubi-celery-worker”
这是我更改行的管道中代码的相关部分:
我说的是 sh clouse 中的第三行。
$line 是“for 循环”迭代器。
$ENV 是一个时髦的参数。
如果我在 Jenkins 服务器上的终端中运行它,它会正确编辑行并添加所需的前缀。
但是,如果我通过 Jenkins 作业运行它,我会收到以下错误:
我试过的东西:
- 转义一些可疑的“$”符号,将双引号更改为单引号......没有任何帮助,我不断收到此错误。
你能找到我在哪里缺少正确的转义吗?
maven - 即使在 jenkins 脚本中分配了 pom 版本号,Env 变量值也被重置为原始值
我有一个场景,我必须阅读不同组件的 maven pom 版本并将版本分配给 docker image(TAG)。但是在我阅读 pom 后,将它分配给一些全局变量,它将在 groovy jenkins 脚本中重置为原始值。下面是示例。HMAP_VERSION 值将是 1.2.1 但当它在行中使用时:sh "docker login -u ${ART_USERNAME} -p ${ART_PASSWORD} test.com"
该值将是UNINITIALISED
.
有人可以告诉我可能出了什么问题吗?这将适用于在 env 块中读取的单个 maven 文件,如下所示:
下面是我想做什么的示例。
jenkins - 在 jenkins 中的多个脚本部分上引用 groovy 变量
在 Jenkins 工作中,我有一个 groovy 脚本,它分为两部分。它在 SCM 之前做一些事情,并在工作结束时做一些其他事情作为最后的构建指令。
现在,我需要访问第二部分中的一个变量,这是我在第一部分中设置的。
怎么做?
我尝试用 将变量标记为字段@Field Boolean myFlag = false
,但在脚本的第二部分中仍然无法访问 myFlag。
口译员说:
groovy.lang.MissingPropertyException: No such property: myFlag for class: Script1
有谁知道如何在第二个脚本的第一部分完成访问变量?
谢谢!
jenkins - Jenkins2.0流水线脚本拒绝日期算法
我在 groovy Jenkinsfile 中有以下代码:
输出是:
这在我的本地盒子中工作得很好,但在 Jenkins 的沙盒模式下,这失败了,我无法在 Jenkins 中关闭沙盒模式。
有什么解决方法吗?
jenkins - 如何在 Jenkins 中从 Active Choices Plugin groovy 脚本执行 shell
我正在尝试使用 groovy 脚本在活动的 Active Choices 参数中呈现从 shell 获得的信息。我可以使用 sh 方法从 jenkins 管道中的 groovy 脚本轻松访问 shell,如下所示:
但是,当我在 Active 选择的 groovy 脚本中尝试此操作时,它会崩溃并执行回退脚本。
是否可以在此上下文中切换到节点并执行 shell 命令?
谢谢您的帮助!
jenkins - 从詹金斯读取 json
我正在尝试使用 grovvy 脚本从 jenkinsfile 中读取 json 文件。我正在使用 pipeline-utility-steps-plugin,它允许将 json 文件作为字符串读取,其中包含以下内容。
阅读完文档后,我想我可以用这样的方法脱身,但我肯定做错了什么,因为结果为空?
现在我的问题是我似乎无法弄清楚我是如何得到 2 号的名字的?请帮帮我
Projects.json 的内容