Могу ли я получить доступ к текущему идентификатору этапа в конвейере Jenkins? - PullRequest
0 голосов
/ 19 сентября 2019

Я использую разделяемую библиотеку для построения конвейеров CI / CD в Jenkins.И в моем случае, на некоторых этапах необходимо отправить информацию о выполнении через веб-интерфейс API.В этом случае нам нужно добавить идентификатор этапа для текущего этапа в вызовы API.

Как получить доступ к идентификатору этапа аналогично $ {STAGE_NAME}?

1 Ответ

0 голосов
/ 22 сентября 2019

Я использую Pipeline REST API Plugin , а также HTTP Request Plugin

Ваши методы в Jenkinsfile могут выглядеть следующим образом:

@NonCPS
def getJsonObjects(String data){
    return new groovy.json.JsonSlurperClassic().parseText(data)
}

def getStageFlowLogUrl(){
    def buildDescriptionResponse = httpRequest httpMode: 'GET', url: "${env.BUILD_URL}wfapi/describe", authentication: 'mtuktarov-creds'
    def buildDescriptionJson = getJsonObjects(buildDescriptionResponse.content)
    def stageDescriptionId = false

    buildDescriptionJson.stages.each{ it ->
        if (it.name == env.STAGE_NAME){
            stageDescriptionId = stageDescription.id
        }
    }
return stageDescriptionId
}
...