如何使用Jenkins http_request插件以gzip格式编写文件?

aamkag61  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(129)

在JenkinsFile中,我试图从URL恢复gzip压缩文件:https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz .
使用命令
sh 'curl -LO https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz'
事情工作整齐,我可以解压缩文件等。然而,我需要通过Jenkins的http_request插件(doc here:https://plugins.jenkins.io/http_request
我的代码遵循Jenkins文档:

def response = httpRequest url: "https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz",
                                                httpMode: 'GET'
writeFile file: 'pact-1.91.0-linux-x86_64.tar.gz', text: response.content

问题是它不能将该文件识别为gzip压缩数据,因此我无法通过命令tar xzf pact-1.91.0-linux-x86_64.tar.gz将其解压缩。
为了检查文件格式,我在JenkinsFile中运行了以下命令:
sh 'file pact-1.91.0-linux-x86_64.tar.gz'
输出:pact-1.91.0-linux-x86_64.tar.gz:数据
预期输出:pact-1.91.0-linux-x86_64.tar.gz:gzip压缩数据
我试着看看我是否可以通过linux命令获得原始文件并更改其格式,但不确定这是否可行。也许有一种方法可以从Jenkins或Linux将此文件转换为gzip格式?

mmvthczy

mmvthczy1#

最后,我能够通过使用Jenkins插件提供的outputFile参数找到另一种解决方案,如下所示:

httpRequest url: "https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz",
                                                    httpMode: 'GET',
                                                    validResponseCodes: "200"
                                                    outputFile: 'pact-1.91.0-linux-x86_64.tar.gz'

相关问题