如何跳过特定消息的 SCM 触发器

How to skip SCM trigger on certain message

我正在为多分支管道使用声明式 Jenkinsfile,如此处所示。 SCM 设置为每 5 分钟轮询一次。

pipeline {
    agent none
    stages {
        stage('Build Jar') {
            agent {
                docker {
                    image 'maven:3.6.0-jdk-11'
                    args '-v $HOME/.m2:/root/.m2'
                }
            }
            steps {
                sh 'mvn clean package release:clean release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true" -DscmCommentPrefix="[skip ci]"'
            }
        }
        stage('Build Image') {
            steps {
                script {
                    app = docker.build("myname/myimage")
                }
            }
        }


        //other stages here


}

问题:

maven release 提交对触发另一个构建的 repo 的更改。所以它会无限期地触发。我遇到了这个 SCM Skip 插件。

scmSkip(deleteBuild: true, skipPattern:'.*\[skip ci\].*')

但不幸的是它需要代理才能运行!!


我也试过用agent any。没有运气。

  pipeline {
        agent any
        stages {
          stage('SCM Check') {
            steps {
                 scmSkip(deleteBuild: true, skipPattern:'.*\[skip ci\].*')
            }
          }
            stage('Build Jar') {
                steps {
                    sh 'mvn clean package release:clean release:prepare release:perform -Darguments="-Dmaven.deploy.skip=true" -DscmCommentPrefix="[skip ci]"'
                }
            }
            stage('Build Image') {
                steps {
                    script {
                        app = docker.build("myname/myimage")
                    }
                }
            }


            //other stages here


    }

你们如何跳过某些消息的构建?

我不得不使用下面的插件,它排除了特定的提交者。效果很好。

https://github.com/jenkinsci/ignore-committer-strategy-plugin