如何在 jenkins 管道中访问 git 提交消息 INSIDE sh STEP?

How to access git commit message INSIDE sh STEP in a jenkins pipeline?

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

请注意,这不是重复性问题,因为 Whosebug 上的 none 类似问题正好解决了我需要的问题。我需要在我的管道的所有 sh 个步骤中都有提交消息。

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

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

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