如果标记出现在提交消息中,则跳过jenkins阶段

wqlqzqxt  于 2023-01-20  发布在  Jenkins
关注(0)|答案(1)|浏览(138)

如果提交消息中有类似#no_build或#no_unittest的内容,我将尝试跳过Jenkins管道中的某些阶段。
如果#no_unittest出现在提交消息中,我不想跳过单元测试阶段。
我看到有一个使用脚本的解决方案,但是是否可以用声明的方式来实现呢?

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'npm build'
            }
        }
        stage('Unittest') {
            when{
                branch 'master'
            }
            steps {
                sh 'python unittest.py'
            }
        }
    }
}

P.S.标签应区分大小写,“-”和“”也应同等对待。
我试着把变更日志:#no_build,但这没有产生预期的结果。我不确定如何解决“-”和“
”相等的问题。

rlcwz9us

rlcwz9us1#

您可以将changeLogwhen条件一起使用。示例如下。

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'npm build'
            }
        }
        stage('Unittest') {
            when{
                when { not { changelog '^.*#no_unittest.*$'} }
            }
            steps {
                sh 'python unittest.py'
            }
        }
    }
}

相关问题