如何在某些消息上跳过SCM触发

时间:2019-07-01 13:30:17

标签: jenkins jenkins-pipeline maven-scm

我在多分支管道中使用声明性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版本将更改提交到存储库,从而触发另一个构建。因此它会被不确定地触发。我碰到了这个SCM跳过插件。

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

但是不幸的是,它需要一个代理来运行!


我也尝试使用任何代理。没运气。

  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


    }

你们如何跳过某些消息?

1 个答案:

答案 0 :(得分:0)

我必须使用以下插件,该插件不包含某些提交者。效果很好。

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