Jenkins管道从git commit获取变量

时间:2019-10-18 10:18:18

标签: git jenkins jenkins-pipeline pipeline

我对Jenkins管道有疑问。我想有一个从git commit获取数据的变量。

例如,如果git commit表示“版本1.0.0”,则Jenkins文件中的变量应为“ 1.0.0”。如果提交为2.0.0,则变量应为2.0.0

我已经看到在Jenkins中使用选项changelog可以从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 个答案:

答案 0 :(得分:1)

您可以定义环境变量dynamically,例如:

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}--"'
            }
        }
    }
}