我是shell脚本的初学者,在对jenkins的任务进行参数化时,我遇到了一些问题。我想使用${params}
将jenkins作业管道构建的所有参数和参数写入到一个JSON文件中!在我的例子中,我有4个参数(apis:多选、名称:字符串、版本:单选和状态:布尔值),还有脚本Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
script{
sh "./test.sh ${params}"
}
}
}
}
}
test.sh的内容
#!/bin/bash
echo $@ > file.json
jenkins格式的输出
+ ./test.sh [apis:dev,qa,prod, name:CC, version:g3, status:true]
结果为file.json
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
我的问题是,如何在file.json中格式化输出以获得干净的结果?求求你我需要帮助。
发布于 2020-02-23 15:41:55
将此代码添加到您的脚本的顶部:
import groovy.json.JsonOutput
然后使用此行而不是sh "./test.sh ${params}"
writeFile file: 'params.json', text: JsonOutput.toJson(params)
它使用Groovy库和native Jenkins method来编写文件,这意味着您不需要使用sh
方法。
https://stackoverflow.com/questions/60363363
复制