当前位置: 首页 > 面试题库 >

如何在Jenkinsfile中将卷曲响应捕获到变量中

应嘉容
2023-03-14
问题内容

我想卷曲一个URL并将响应捕获到一个变量中。

当我卷曲命令并回显其输出时,我得到如下正确的响应

sh 'output=`curl https://some-host/some-service/getApi?apikey=someKey`;echo $output;'

我想将相同的响应捕获到变量中,并将该响应用于进一步的操作

以下是我的Jenkinsfile

pipeline {
    agent {
          label "build_2"
       }
    stages {
        stage('Build') {
            steps {
                checkout scm
                sh 'npm install'

            }
        }
        stage('Build-Image') {
            steps {
                echo '..........................Building Image..........................'

                //In below line I am getting Output
                //sh 'output=`curl https://some-host/some-service/getApi?apikey=someKey`;echo $output;'

                script {
                    //I want to get the same response here
                    def response = sh 'curl https://some-host/some-service/getApi?apikey=someKey'
                    echo '=========================Response===================' + response
                }
            }
        }
    }
}

能否请您告诉我我需要在Jenkinsfile中进行哪些更改


问题答案:

如果要从shstep 返回输出并将其捕获到变量中,则必须更改:

def response = sh 'curl https://some-host/some-service/getApi?apikey=someKey'

至:

def response = sh(script: 'curl https://some-host/some-service/getApi?apikey=someKey', returnStdout: true)

参考: https : //jenkins.io/doc/pipeline/steps/workflow-durable-
task-step/#sh-shell-script



 类似资料:
  • 问题内容: 我正在使用以下代码使用nodejs和ssh2模块在Linux机器上重置密码: 我正在从另一个模块(如下所示的test.js)调用resetPassword密码功能。 但是console.log说“未定义”。尝试使用process.nextTick,但没有运气。请帮忙。 问题答案: 欢迎来到node.js中使用异步操作进行开发的世界。最初学习node.js时,这是一个非常常见的错误(也是

  • 问题内容: 我正在生成大量的XML,当用户单击表单按钮时,这些XML将作为发布变量传递到API。我还希望能够事先向用户显示XML。 该代码有点像以下结构: 我的XML正在生成一些while循环和其他内容。然后需要在两个位置(预览和表单值)中显示它。 我的问题是。我如何在变量中捕获生成的XML或其他内容,所以我只需要生成一次,然后将其打印出来就可以在预览中生成,然后在表单值中生成? 问题答案:

  • 问题内容: 我在下面的我的jquery脚本时遇到问题,这是一个基本的精简版本,甚至无法正常工作,我有jquery脚本调用的php文件,我将其设置为编码并显示json响应 然后,在jquery脚本中,它应该读取该值并对其进行响应,但未获得响应。 json.response是在json字符串中调用名称响应变量的错误方式吗? 有人可以帮助我吗 更新; 我已经更改了 json.response 进入 数据

  • 我有一个Python脚本,它在stdout上返回一个字符串。python脚本返回的值可以收集在bash脚本中,如下所示: 在使用Groovy编写的Jenkinsfile编写脚本的管道上,我需要从Jenkinsfile调用python脚本,并将输出收集到Jenkinsfile中的变量中。 问题: 如果我的Jenkinsfile在macOS节点上运行,我该如何做到这一点。以下是我至少可以在shell变

  • 问题内容: 我想在脚本内部使用一个变量,然后将其值传递给Shell脚本执行(作为环境变量或命令行参数)。 但是以下内容: 给出输出: 所需的输出类似于: 任何想法如何将值传递给shell scipt吗? 编辑: 基于马特的]答案,我现在使用此解决方案: 好处是,我不需要在shell脚本中转义。 问题答案: 您的代码使用文字字符串,因此您的Jenkins变量将不会在shell命令中插入。您需要使用来

  • 我想在脚本中使用一个变量,然后将其值传递到shell脚本执行中(作为环境变量或命令行参数)。 但是下面的: 给出输出: 期望的输出是这样的: 你知道如何将的值传递给shell scipt吗? 编辑:根据Matt的回答,我现在使用以下解决方案: 优点是,我不需要在shell脚本中转义。