Jenkins Pipeline получает переменную из git commit - PullRequest
0 голосов
/ 18 октября 2019

У меня вопрос по трубопроводу Дженкинса. Я хотел бы иметь переменную, которая получает данные из коммита git.

Например, если коммит git говорит «Версия 1.0.0», тогда переменная в файле Jenkins должна быть «1.0.0». Если коммит 2.0.0, тогда переменная должна быть 2.0.0

Я уже видел, что с опцией changelog в Jenkins вы можете получать данные из Git Commit, к сожалению, я не знаюкак поместить эти данные в переменную?

Кто-нибудь может мне помочь?

Я уже видел и попробовал следующее

pipeline {
    when {
        changelog '1.0.0.0'
    }
    environment {
        nicevariable = " here should be the gitcommit see changelog"
    }



    agent none
    stages {
        stage("first") {
            sh "echo ${nicevariable}"
        }
    }
}

1 Ответ

1 голос
/ 18 октября 2019

Вы можете определить переменную среды динамически , например:

pipeline {
    agent any
    environment {
        GIT_MESSAGE = """${sh(
            script: 'git log --no-walk --format=format:%s ${GIT_COMMIT}', 
            returnStdout: true
            )}"""
    }
    stages {
        stage('test') {
            steps {
                sh 'echo "Message: --${GIT_MESSAGE}--"'
            }
        }
    }
}
...