【问题标题】:How do I prevent Jenkins pipeline (workflow) from triggering multiple builds when used with multiple git repos?与多个 git repos 一起使用时,如何防止 Jenkins 管道(工作流)触发多个构建?
【发布时间】:2016-04-05 19:34:48
【问题描述】:

如果您的工作流程使用多个 git 存储库,则每个 git push 都会触发 Jenkins 中的构建。

如果我有一个工作流作业配置为轮询 10 个 git 存储库,并且我将更改推送到所有这些存储库 [在进行发布构建时很有可能] - 那就是队列中的 10 个构建。这既好又坏。不好,因为我们将在不同的存储库中进行更改,并且我们希望在所有文件都进入后开始构建。同时我不想避免轮询存储库。

阶段“REPO-1”{
git 分支:“功能/测试分支”,更改日志:真, 民意调查:真,网址:'ssh://git@stash.com/repo1.git',credentialsId:'xxx' }

阶段“REPO-2”{
git 分支:“功能/测试分支”,更改日志:真, 民意调查:真,url:'ssh://git@stash.com/repo2.git',credentialsId:'xxx' }

有没有办法可以防止这种行为可能会导致轮询延迟。

【问题讨论】:

    标签: jenkins jenkins-plugins githooks jenkins-workflow jenkins-pipeline


    【解决方案1】:

    您是否考虑过使用Additional Behaviours: Polling ignores commits with certain messages

    如果设置,并且 Jenkins 设置为轮询更改,则 Jenkins 在确定是否需要触发构建时将忽略任何提交的带有与 Pattern 匹配的消息的修订...

    步骤:

    1. 使用IGNORE 消息提交您的更改。
    2. 一旦所有存储库都是最新的,然后手动触发构建或使用no-IGNORE 消息。

    结帐步骤:

    checkout([$class: 'GitSCM', 
        branches: [[name: '*/master']], 
        doGenerateSubmoduleConfigurations: false, 
        extensions: [[$class: 'UserExclusion', excludedUsers: ''], 
        [$class: 'MessageExclusion', excludedMessage: '.*\\[ignore-this-commit\\].*']], 
        submoduleCfg: [], 
        userRemoteConfigs: [[url: 'https://github.com/luxengine/math.git']]])
    

    【讨论】:

    • 我已经尝试过 Workflow 中的安静期选项,效果很好
    • 试过这个方法,构建仍然执行。
    • 我似乎也有这个问题。有人解决了吗?
    • 我在 Jenkins 作业和 Atlassian bitbucket webhook 中尝试了 excludeUsers、excludedMessage 并添加了 Ignore User。但构建仍在触发
    【解决方案2】:

    我已启用 安静期 选项并添加了 60 秒的超时。这将有助于 Jenkins 工作流程将在安静期间对多个存储库的更改合并为一个并触发单个构建,而不是为每个 SCM 更改触发多个构建。

    请记住,在我的案例中,静默期设置为 60 秒,只要其他更改在 60 秒内,它就会添加另一个 60 秒静默期,以监视存储库中的任何其他更改。但是,如果您在 60 秒后对存储库进行另一次更改,它将是另一个构建。

    【讨论】:

    • 您能解释一下如何在 Jenkinsfile 中设置静默期吗?我无法在多分支项目中启用此功能
    • @FedericoBonelli 我想在使用多分支项目时没有可用的安静期。
    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2018-04-01
    • 1970-01-01
    相关资源
    最近更新 更多