我们在Jenkins中有一个经过评估的Groovy脚本: - ;
但是构建失败并出现错误[EnvInject] - [ERROR] - [EnvInject] - [ERROR] - 注入env变量作为构建换行时出现问题:null 17:04:06完成:失败 . 另外,如何从Jenkins shell脚本调用变量以获取上次成功的构建日期 . -谢谢
def env = System.getenv()
def item = Jenkins.instance.getItem("")
def f=item.getLastFailedBuild()
println f.getTime()
def ff=env['item.getLastSuccessfulBuild()]
println ff.getTime().format("YYYY-MMM-dd HH:MM:SS")
println ff.getTime().format("dd-MM-yyyy")
def pa = new ParametersAction([new StringParameterValue('PARAMETER_NAME', ff)]);
Thread.currentThread() . executable.addAction(pa)println'脚本完成了! \ n env variable
2 回答
简单的答案是,在第7行,您没有收尾报价:
def ff=env['item.getLastSuccessfulBuild()]
但是,这不是您的最后一个问题:
我认为你不想使用
ff = env['item.getLastSuccessfulBuild()]']
而只是一个简单的ff = item.getLastSuccessfulBuild()
您需要包含以下导入行才能使用关联的类:
import jenkins.model.Jenkins import hudson.model.ParametersAction import hudson.model.StringParameterValue
行
item = Jenkins.instance.getItem("Fastlane_Test")
在我的环境中不起作用,甚至将"Fastlane_Test"替换为存在的作业 .我用
item = Jenkins.instance.getItemByFullName("Fastlane_Test")
替换了它 .另外,为了安全起见,您应该进行测试以确保
item
不为空最后,你有没有错过
Thread.currentThread().executable.addAction(pa)
线路?您需要使用它将新参数添加到运行环境中 .以下代码应该是一个合理的起点,但请注意我已删除了
def env = System.getenv()
行,因为以后代码中的其他任何地方都没有使用env:希望你能找到这个帮助,虽然我发现自你发布问题已经有一段时间了 .
亲切的问候
谢谢尼克!
我添加了以下“执行系统groovyscript”作为Jenkins工作的一部分,它工作正常:import jenkins.model.Jenkins
` . def item = Jenkins.instance.getItem(“Job”)