首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用${params}将所有参数jenkins写入JSON文件

使用${params}将所有参数jenkins写入JSON文件
EN

Stack Overflow用户
提问于 2020-02-23 22:45:26
回答 1查看 1.4K关注 0票数 2

我是shell脚本的初学者,在对jenkins的任务进行参数化时,我遇到了一些问题。我想使用${params}将jenkins作业管道构建的所有参数和参数写入到一个JSON文件中!在我的例子中,我有4个参数(apis:多选、名称:字符串、版本:单选和状态:布尔值),还有脚本Jenkinsfile

代码语言:javascript
运行
复制
pipeline {
  agent any
    stages {
        stage('Build') {              
            steps {              
                script{              
                   sh "./test.sh ${params}"
                }
            }
        }
    }
}

test.sh的内容

代码语言:javascript
运行
复制
#!/bin/bash
echo $@ > file.json

jenkins格式的输出

代码语言:javascript
运行
复制
+ ./test.sh [apis:dev,qa,prod, name:CC, version:g3, status:true]

结果为file.json

代码语言:javascript
运行
复制
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

我的问题是,如何在file.json中格式化输出以获得干净的结果?求求你我需要帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-23 23:41:55

将此代码添加到您的脚本的顶部:

代码语言:javascript
运行
复制
import groovy.json.JsonOutput

然后使用此行而不是sh "./test.sh ${params}"

代码语言:javascript
运行
复制
writeFile file: 'params.json', text: JsonOutput.toJson(params)

它使用Groovy库和native Jenkins method来编写文件,这意味着您不需要使用sh方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60363363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档