json - 使用 ${params} 将所有参数 jenkins 写入 JSON 文件
问题描述
我是 shell 脚本的初学者,在 jenkins 作业参数化时遇到了一些问题。我想使用参数将 jenkins 作业管道构建的所有参数写入 JSON 文件${params}
!在我的情况下,我有 4 个参数(apis:multi-select,name:string,version:single-select 和 status:Boolean),有脚本 Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
script{
sh "./test.sh ${params}"
}
}
}
}
}
test.sh 的内容
#!/bin/bash
echo $@ > file.json
詹金斯的输出
+ ./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 中获得干净的结果?我需要帮助。
解决方案
将此添加到脚本的顶部:
import groovy.json.JsonOutput
然后使用这一行代替sh "./test.sh ${params}"
:
writeFile file: 'params.json', text: JsonOutput.toJson(params)
这使用 Groovy 库和原生 Jenkins 方法来编写文件,这意味着您不需要使用该sh
方法。