当直接在命令行上执行时,Jenkinsfile 中的 bat 步骤以不同方式处理curl 命令

问题描述 投票:0回答:1

我想使用

tar.gz
下载
curl
文件,这是我尝试使用 Windows cmd(本地)的命令:

curl --user admin:admin --location "https://my_api/doxy_manual.tar.gz" --output doxy_manual.tar.gz 

这是有效的,因为如果我双击它就可以打开该文件。

不幸的是,如果我在 Windows 服务器上正在运行的 Jenkins 实例上的

Jenkinsfile
中粘贴相同的命令:

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
    
    post {
        always {
            script {
                bat """
                    curl --user admin:admin --location "https://my_api/doxy_manual.tar.gz" --output doxy_manual.tar.gz
                """
            }
        }
    }
}

双击下载的文件时出现以下错误:

7-zip:无法打开文件“C:\Users\john\Downloads\doxy_manual.tar.gz”作为存档 [gzip]。错误:不是存档

我错过了什么?

jenkins curl groovy jenkins-pipeline
1个回答
0
投票

您可能想查看

HTTP Request Plugin
并使用
uploadFile
来发送 POST 请求。就我个人而言,我认为
curl
没有问题,除非您想以编程方式对响应执行某些操作。在这种情况下,采用基于 DSL 的方法可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.