如何写一个文件与Jenkins http_request插件在gzip格式?



在JenkinsFile中,我试图从url: https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz恢复gzip压缩文件。

使用

命令

sh 'curl -LOhttps://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz '

的东西工作整齐,我可以解压缩文件等。然而,我需要使这个http请求通过http_request插件从詹金斯(doc在这里: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命令获得原始文件并更改其格式,但不确定这是否可能。也许有一种方法,无论是从詹金斯或从Linux转换这个文件到gzip格式?

最后,我通过使用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'

相关内容

  • 没有找到相关文章

最新更新