Конвейер Jenkins выполняет CURL из пакетного файла - периодически появляется сообщение "CURL не распознается как внутренняя или внешняя команда"

Я использую агент Windows в конвейере из-за зависимости Windows в сборке.

После сборки необходимо загрузить JAR в облачное хранилище объектов, для этого я использую CURL в файле bat, который работает с перебоями и в большинстве случаев выдает ошибку, так как "CURL не распознается как внутренняя или внешняя команда"

Jenkinsfile

pipeline {

    agent { label 'windows' }

    stage ('Upload to COS') {
            steps {


                bat """
                    devops/cos-upload.bat $APPLICATION_VERSION $APPLICATION_NAME $WORKSPACE
                """
            }
        }
}

Пакетный файл

setlocal enableextensions

// CODE TO GET THE ACCESS TOKEN FROM THE CURL JSON RESPONSE [WHICH ITSELF IS FAILING]
    For /f "tokens=1,2 delims=:, " %%U in ('curl -X "POST" "https://iam.cloud.ibm.com/identity/token" -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode "apikey={apikey}" --data-urlencode "response_type=cloud_iam" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" 2^>Nul ^| findstr /i "\"access_token\""') do Set "ACCESS_TOKEN=%%~V"



    curl -X "PUT" "https://s3.us.cloud-object-storage.appdomain.cloud/%BUCKET_NAME%/%DEST_FILE_NAME%" -H "Authorization: bearer %ACCESS_TOKEN%" -H "Content-Type: application/x-java-archive" -T %FILE%
endlocal

Заранее спасибо.

0 ответов

Другие вопросы по тегам