首页 > 解决方案 > 如何在詹金斯管道中访问 git commit 消息 INSIDE sh STEP?

问题描述

我需要从 git 存储库访问当前 fetch 的提交消息,同时sh在 jenkins 中完成管道不同阶段的一些步骤;但我没有找到任何合适的解决方案。如果我可以将提交消息设置为环境变量,那也很好,这样我以后可以访问它。

请注意,这不是一个重复的问题,因为 stackoverflow 上的类似问题都没有完全解决我的需要。我需要在sh管道的所有步骤中都有提交消息。

标签: jenkinsjenkins-pipelineshgit-commitcommit-message

解决方案


您可以获取获取的提交 ID 的提交消息并将其设置为环境变量,如下所示:

stage('get_commit_msg') {
    steps {
        script {
            env.GIT_COMMIT_MSG = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
        }
    }
}

然后,您可以${GIT_COMMIT_MSG}在管道的任何下游阶段在 Shell 脚本中使用。


推荐阅读