如何在推送中获取最新的提交消息并验证消息是否以某个正则表达式模式开头?

时间:2018-09-27 18:59:58

标签: git jenkins jenkins-pipeline multibranch-pipeline

我有两个问题 1.尝试解析git commit消息,但是egrep作为单独的命令执行。返回结果始终不正确。有效消息可以是“ a-1”

stage('test') {
        steps {           
            script {
                def result = sh(script: "git log -1 --pretty=%B | egrep '(([a-zA-Z ]+-\\d+[, \t\n]*)+)(.*)'", returnStatus: true)

                if (result == 0) {
                    echo "continuous building..."
                } else {
                    echo "Incorrect commit message prefix. Aborting"
                    exit 1
                }
            }

        }
    }

运行结果。此处显示处理器已将'|'分开分成两个命令并分别执行。我怎样才能使它成为一体?

[Microscope_PR-2-I4FUBH4BH2EXP7UKWZIUYPCCCB] Running shell script

+ git log -1 --pretty=%B

+ egrep '(([a-zA-Z ]+-\d+[, \t\n]*)+)(.*)'
  1. 此外,在git push之前可能有多次提交。如何检查所有提交而不是仅最后提交? “ git log -1”,仅返回最后一个提交,而不是在git push之前返回所有提交。 例子是

    >git commit -a -m "test1"
    >git commit -a -m "test2"
    >git commit -a -m "test3"
    >git push origin HEAD
    

希望使用git log或其他命令来获取

    test1
    test2
    test3

0 个答案:

没有答案