解决:感谢S.Richmond的回答.我需要取消设置所有存储的groovy.json.internal.LazyMap类型的映射,这意味着使变量envServers和object使用后无效.
附加:搜索此错误的人可能有兴趣使用Jenkins管道步骤readJSON- 在此处查找更多信息.
我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业.然后Pipeline使用slurper解析它,我挑选出重要的信息.然后,它将使用该信息与不同的作业参数并行多次运行1个作业.
直到我添加下面的代码"## Error when below here is added"脚本运行正常.即使是该点下面的代码也会自行运行.但合并后,我得到以下错误.
我应该注意到被触发的作业被调用并且确实成功运行但是发生了以下错误并且失败了主要作业.因此,主要工作不会等待触发作业的返回.我可以尝试/捕捉周围build job:但我希望主要工作等待触发的工作完成.
谁能在这里协助?如果您需要更多信息,请告诉我们.
干杯
def slurpJSON() {
return new groovy.json.JsonSlurper().parseText(BUILD_CHOICES);
}
node {
stage 'Prepare';
echo 'Loading choices as build properties';
def object = slurpJSON();
def serverChoices = [];
def serverChoicesStr = '';
for (env in object) {
envName = env.name;
envServers = env.servers;
for (server in …Run Code Online (Sandbox Code Playgroud) 我正在使用Jenkins 2.2和email-ext插件 2.42(当前和我的所有其他插件一样).我将我的全局配置设置为具有单个显式收件人,并且我的项目使用默认电子邮件通知配置(即发送到$ DEFAULT_RECIPIENTS).我还在项目中设置了一个明确的收件人.在这两种配置中,作业的控制台输出都显示:
尝试将电子邮件发送到空的收件人列表,忽略.
这似乎是https://issues.jenkins-ci.org/browse/JENKINS-13583,除了1.四年前被标记为已解决,以及2.当我使用基本的,内置的时,我会收到电子邮件通知.有没有人用email-ext看到这个问题?
我有一个包含多个步骤的管道,例如:
stage 'dev - compile'
node('master') {
//do something
}
stage 'test- compile'
node('master') {
//do something
}
stage 'prod- compile'
node('master') {
//do something
}
Run Code Online (Sandbox Code Playgroud)
我想在工作中出现问题时发送电子邮件,无论错误发生在何处,我都能发送电子邮件,例如:
try {
/**
all the code above
**/
} catch(Exception e) {
mail the error
}
Run Code Online (Sandbox Code Playgroud) 我开始使用 Jenkins 声明式管道。现在,我希望具有与Mailer 插件的使用中定义的相同的电子邮件通知行为:
- 每个失败的构建都会触发一封新电子邮件。
- 在失败(或不稳定)构建之后成功构建会触发新电子邮件,表明危机已经结束。
- 成功构建后的不稳定构建会触发一封新电子邮件,表明存在回归。
- 除非配置,否则每个不稳定的构建都会触发一封新电子邮件,表明回归仍然存在。
我阅读了Pipelines 中的 Notifications,但它没有根据上述规则进行通知。另外,在构建失败的情况下,消息正文中不包含控制台输出的一部分。
有人知道如何在声明性管道中做到这一点吗?