代码之家  ›  专栏  ›  技术社区  ›  Dillip Kumar Behera

如何在Jenkins管道代码、Jenkinsfile中添加gerrit触发器事件

  •  4
  • Dillip Kumar Behera  · 技术社区  · 7 年前

            triggers {
                upstream('pipeline_properties', 'UNSTABLE')
                gerrit {
                    events {
                        refUpdated()
                    }
                    project('reg_exp:jenkins', ["plain:${jenkins_branch}"])
                }
            }
    

    2 回复  |  直到 7 年前
        1
  •  6
  •   Larry Cai    7 年前

    这是一个有效的 Jenkinsfile 介绍gerrit触发器事件部分,请参阅代码段下面的参考

    BuildDiscarderProperty SCMTrigger 也用于样品。

    #!/usr/bin/env groovy          
    properties(
        [
            [
                $class: 'BuildDiscarderProperty',
                strategy: [$class: 'LogRotator', numToKeepStr: '10']
            ],
            pipelineTriggers([
                [
                    $class: 'SCMTrigger',
                    scmpoll_spec: "H H 1,15 1-11 *"
                ],
                [
                    $class: 'GerritTrigger', gerritProjects: [
                        [
                            $class: "GerritProject", 
                            compareType: "REG_EXP",
                            pattern: "jenkins",
                            branches: [
                                [
                                    $class: "Branch",
                                    pattern: "\${jenkins_branch}"
                                ]
                            ]
                        ]
                    ],
                    triggerOnEvents: [
                        [$class: "PluginRefUpdatedEvent"]
                    ]
                ]
            ])
        ]
    )
    node {
        echo 'Hello World'
    }  
    

    有用的参考资料

    config.xml JENKINS_HOME 作业目录用于调试

        2
  •  1
  •   Apteryx    3 年前

    如果您正在使用 声明性管道 (与脚本化管道不同,其他答案中使用的属性方法应该适用于脚本化管道),您希望使用“触发器”指令。令人困惑的是,使用 properties 似乎有效,但最终(无声地)与其他声明性内容发生冲突,例如 options triggers .

    轻松生成Gerrit触发器声明性指令的最佳方法是使用Jenkins生成器,该生成器可用于以下位置的任何Jenkins实例: https://$your-jenkins-host/directive-generator

    实例

    1. https://$your jenkins主机/指令生成器
    2. 选择“触发器:触发器”作为示例指令字段。
    3. 添加触发器,例如在创建补丁集或发布“!build”注释时触发。
    4. 添加一个项目,其中模式与其名称匹配,另一个模式与一个或多个分支匹配。

    triggers {
      gerrit customUrl: '', gerritProjects: [[branches: [[compareType: 'PLAIN', pattern: 'master']], compareType: 'PLAIN', disableStrictForbiddenFileVerification: false, pattern: 'ring-project']], triggerOnEvents: [commentAddedContains('!build'), patchsetCreated(excludeDrafts: true, excludeNoCodeChange: true, excludeTrivialRebase: true)]
    }
    

    可以在声明性管道文件中使用。