Как отобразить в проекте, который вызывается из другого проекта конвейера, текст jenkins в разделе «Редактировать информацию о сборке»

Привет: у меня есть конвейерный проект в Jenkins под названием «ProjectLaunch», который автоматически запускает другие проекты один день в неделю. Я хотел бы показать в «Редактировать информацию о сборке» текст, который говорит что-то вроде «ProjectCalled полностью запущен» в вызываемом проекте. С конвейером, который у меня есть в «ProjectLaunch», я могу получить этот текст только в «Редактировать информацию о выполнении», но не в вызываемых проектах.

Мой конвейер:

pipeline {
    agent any
    stages {
                                
        stage('Proyect called') {                                   
            steps{                       
                build job: 'Proyect called',string(name: "DESCRIPTION", value: "ProjectCalled full launched") ]
            }                  
        }   
                      
    }
}

В проекте, который называется в конфигурации, у меня есть скрипт Execute system Groovy, он такой:

import hudson.model.*
def build = manager.build
def params = build.action(hudson.model.ParametersAction).getParameters()
def description = "${params.DESCRIPTION}"
echo "Setting build description to: ${description}"
build.createSummary("Build description").appendText(description, "html")

Но когда я запускаю его, я получаю эту ошибку: Поймано: groovy.lang.MissingPropertyException: нет такого свойства: менеджер для класса: hudson1130775177255181016 groovy.lang.MissingPropertyException: такого свойства нет: менеджер для класса: hudson1130775177255181016

Есть идеи? Спасибо.


57
2

Ответы:

Насколько я знаю, вы не можете установить описание сборки нижестоящего задания из вышестоящего задания. Следовательно, в вашем нисходящем задании у вас может быть некоторая логика для установки описания на основе триггера.

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                script {
                    echo 'Your second Job'
                    if (currentBuild.getBuildCauses()[0]._class == "org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause") {
                        echo "This is triggered by  upstream Job"
                        currentBuild.description = "ProjectCalled full launched."
                    }

                }   
            }
        }
    }
}

Решено

Я сделал следующее, потому что с Groovy я не мог этого сделать. Я установил плагин «Build Name and Description Setter». В проекте пайплайна «ProjectLaunch» пайплайн будет примерно таким:

Pipeline {
agent any
parameters{
    
    string(name: "DESCRIPTION", defaultValue: "ProjectCalled full launched", description: "")
}
stages {
                                
    stage('ProjectCalled') {                                    
        steps{                       
            build job: 'ProjectCalled', parameters: [string(name: "DESCRIPTION", value: params.DESCRIPTION)]                    
        }                  
    }   
                  
}

}

А в настройках ProjectCalled добавляю параметр, выбираю опцию плагина Changes build description, и пишу ${DESCRIPTION}.

Изменено описание сборки

Ах! Я также создал строковый параметр с именем DESCRIPTION и без значения. Строковый параметр