dingtalk-plugin icon indicating copy to clipboard operation
dingtalk-plugin copied to clipboard

but received class java.lang.String

Open ithuhaiyang opened this issue 3 years ago • 0 comments

问题描述 钉钉通知at通知,在pipline中dingtalkat字段调用变量at_phone_list手机号列表失败

日志信息 Error when executing failure post condition: 14:21:21 java.lang.ClassCastException: class io.jenkins.plugins.DingTalkPipeline.setAt() expects java.util.List<java.lang.String> but received class java.lang.String 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:492) 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.injectSetters(DescribableModel.java:429) 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:331) 14:21:21 Caused: java.lang.IllegalArgumentException: Could not instantiate {at=['13161511843', '13083991560', '13231301570'], atAll=false, messageUrl=http://47.103.135.223:8686/, robot=385248b5-b5ef-xxxxxxxx, text=[### 构建任务: test-java-angel-auth ❌, ---, - 任务操作: Deploy, - Build版本号: #217, - 任务状态: 失败, - 持续时间: 6.7 sec , - 执行人: [Started by user 海洋], - 发版内容: ], title=构建失败:test-java-angel-auth, type=ACTION_CARD} for io.jenkins.plugins.DingTalkPipeline 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:334) 14:21:21 at org.jenkinsci.plugins.structs.describable.UninstantiatedDescribable.instantiate(UninstantiatedDescribable.java:208) 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:466) 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.buildArguments(DescribableModel.java:409) 14:21:21 at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:329)

环境信息

  • Jenkins 版本:2.319.3
  • dingtalk-plugin 版本:2.4.4

其他信息 pipline 列表信息:

#!groovy
import java.text.SimpleDateFormat

at_phone_list = []

for (phone in At.split(",")) {
    at_phone_list.push(phone.split(":")[1])
}
println At
println at_phone_list
println at_phone_list.getClass()

pipeline {

pipline 列表执行结果信息: 14:21:17 海洋:'13161511843',顺栋:'13083991560',建国:'13231305510' 14:21:17 [Pipeline] echo 14:21:17 ['13161511843', '13083991560', '13231305510'] 14:21:17 [Pipeline] echo 14:21:17 class java.util.ArrayList

pipline通知代码:

        failure {
            echo "上线失败"
            dingtalk (
                robot: "385248b5-b5ef-xxxxxx",
                type:'ACTION_CARD',
                at: "${at_phone_list}",
                atAll: false,
                title: "构建失败:${env.JOB_NAME}",
                messageUrl: 'http://XXXXXX:8686/',
                text: [
                    "### [构建任务: ${env.JOB_NAME}](${env.JOB_URL}) ❌",
                    '---',
                    "- **任务操作:** ${Mode}",
                    "- **Build版本号:** [${currentBuild.displayName}](${env.BUILD_URL})",
                    '- **任务状态:** <font color=#FF0000 >失败</font>',
                    "- **持续时间:** ${currentBuild.durationString}".split("and counting")[0],
                    "- **执行人:** ${currentBuild.buildCauses.shortDescription}",
                    "- **发版内容:** ${Commit}",
                ]
          )
        }

ithuhaiyang avatar Mar 30 '22 06:03 ithuhaiyang