Хранить переменные среды в объявленной переменной среды Jenkins Pipeline 2.0 - PullRequest
0 голосов
/ 17 сентября 2018

Этот код дает мне ошибку в Дженкинс

groovy.lang.MissingPropertyException: Нет такого свойства: Метрики для класса: java.lang.String

def init_metrics(){
    env.previousStageEnd = 0
    env.stageDuration
    env.stageTimes = [:]
}
init_metrics()

node{
    stage('Metrics'){
        println " - " + env.previousStageEnd + " - " + env.stageTimes + " - " + env.stageDuration + " - " + env.STAGE_NAME
        env.stageTimes[env.STAGE_NAME] = currentBuild.duration - (env.previousStageEnd as int)
        previousStageEnd = currentBuild.duration
    }
}

проблема с этим парнем здесь env.stageTimes[env.STAGE_NAME] по некоторым причинам я не могу добавить окружение stage_name в другое объявленное мной окружение. это работает, только если эти переменные не локальные, а локальные.

1 Ответ

0 голосов
/ 18 сентября 2018

Решением этой проблемы будет определение среды = []

def init_metrics(){
    environment = [
        previousStageEnd = 0,
        stageDuration = null,
        stageTimes = [:]
    ]
}
init_metrics()

node{
    stage('Metrics'){
        println " - " + env.previousStageEnd + " - " + env.stageTimes + " - " + env.stageDuration + " - " + env.STAGE_NAME
        env.stageTimes[env.STAGE_NAME] = currentBuild.duration - (env.previousStageEnd as int)
        previousStageEnd = currentBuild.duration
    }
}
...