簡體   English   中英

如何在我的 jenkinsfile 中配置“掃描多分支管道觸發器”?

[英]How do I configure "Scan Multibranch Pipeline Triggers" in my jenkinsfile?

現在我手動配置我所有的多分支管道作業並將“掃描多分支管道觸發器”設置為 3 分鍾。

我如何把它放在我的Jenkinsfile 我找不到這方面的例子。 觸發器塊中是否提供“掃描多分支管道觸發器”? triggers{}

多分支配置頁面上的設置僅配置多分支掃描作業本身,而不是在多分支“文件夾”內創建的單個作業。

“Scan Multibranch Pipeline Triggers”下的“Periodically if not running”選項只是多分支作業掃描新分支時的觸發器。 如果發現現有分支發生更改,或者發現新分支與 Jenkinsfile 匹配您的分支規范,則將觸發新構建,但這不是觸發作業的方式。

實際上,您可以通過將屬性添加到 SCM 配置以“禁用自動 SCM 觸發”來在發現更改時禁用自動構建。 然后您將看到多分支掃描觸發器,但即使發現更改,作業本身也不會構建。

要觸發作業,理想情況下您應該盡可能使用 webhook。 如果您通過 git 插件(而不是 github 插件)使用 git hook,那么您需要啟用 PollSCM 觸發器(盡管您可以將其設置為僅輪詢很少或根本不輪詢)。

如果您只想要普通的觸發選項,從 2.22 開始,您可以配置cronpollSCM觸發器。

pipeline {
    triggers {
        cron('H/4 * * * 1-5')
        pollSCM('0 0 * * 0')
    }

然后我相信您可以配置 webhooks 來通知您的多分支作業何時進行掃描。 我沒試過。 我只是告訴它使用“如果不以其他方式運行,則定期運行”每小時或每天掃描幾次。

請注意,同樣的事情適用於構建丟棄器和您在多分支作業中配置的其他內容。 在 Web UI 中,您只能配置多分支作業本身,而不能配置從它創建的單個作業。 您必須使用 Pipeline 來配置作業。

如果您使用JobDSL Jenkins 插件來創建作業,那么您可以添加以下行來配置“掃描多分支管道觸發器”:

configure {
    it / 'triggers' << 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger'{
        spec '* * * * *'
        interval "60000"
    }
}

使用 JobDSL Jenkins 插件進行多分支管道作業,可以如下配置定期文件夾觸發器。 在此示例中,在觸發索引之前允許經過的上次索引以來的最長時間為 7 天。

multibranchPipelineJob('my-awesome-job') {
    triggers {
        periodicFolderTrigger {
            interval("7d")
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM