[英]Custom Project Recognisers for Jenkins Multi-branch Pipelines
當您創建Github組織或Bitbucket團隊/項目時,其中一個配置項是:
項目識別器:管道Jenkinsfile
除了“Pipeline Jenkinsfile”之外沒有其他選項,但是該選項甚至存在這一事實表明開發人員設想人們為頂級目錄中沒有單個'Jenkinsfile'的項目編寫自己的自定義'識別器'回購。
任何人都可以指出我可以安裝和使用的任何其他項目識別器的方向,甚至是一些關於從哪里開始實現我自己的識別器的細節?
我的特定用例是在單個存儲庫中,我們定義了幾個工作流,這些工作流在一個倉庫中協調代碼/配置上的操作,我希望能夠使用Bitbucket Team選項動態掃描倉庫,找到所有*.Jenkinsfile
文件跨所有分支/拉取請求並填充必要的管道。
例如,在repo中是文件:
/pipelines/workflow1.Jenkinsfile
/workflow2.Jenkinsfile
/workflow3.Jenkinsfile
我想jenkins創建文件夾結構:
/team/repo/workflow1/master
/dev
/PR1
/workflow2/master
/dev
/feature-xyz
有關我可以從創建項目識別器開始的地方開始的任何想法(如果這是可能的話)?
我認為你可以通過提供多個具有不同名稱的項目識別器來做到這一點,例如:
Project Recognizers ========================================= **Pipeline Jenkinsfile** Script Path: pipeline/workflow1.Jenkinsfile (or path to the file that contains valide Pipeline steps. ========================================= **Pipeline Jenkinsfile** Script Path: pipeline/workflow2.Jenkinsfile (or path to the file that contains valide Pipeline steps. ========================================= **Pipeline Jenkinsfile** Script Path: pipeline/workflow3.Jenkinsfile (or path to the file that contains valide Pipeline steps.
這里的另一個選項可能是Pipeline Shared Groovy Libraries Plugin ,有關此插件的更多詳細信息可以在Extending with Shared Libraries中找到 。
這種方法使您能夠使用自定義腳本(類,步驟等),這意味着您可以根據倉庫名稱,項目名稱等定義自己的流程。
截至目前,至少應該有選擇為Jenkinsfile
提供替代識別Jenkinsfile
。 這是在JENKINS-34561中添加的- 允許檢測不同的Jenkinsfile文件名 。 你可以在jenkinsci / workflow-multibranch-plugin / pull / 59上看到pull請求,這可能有助於提供識別器如何工作的一些背景信息。
就多個被單一來源識別而言, JENKINS-35415 - 每個存儲庫的多個分支項目具有不同的識別器和JENKINS-43749 - 從同一個存儲庫支持多個Jenkins文件的請求與此非常相似。
Stephen Connolly在JENKINS-43749中的評論說明了這一點:
相反,這要求的是為分支內的每個jenkinsfile創建一個帶有管道作業的計算文件夾。
我認為API應該支持,如果有人想要抨擊它。 我看到的唯一問題是我們可能需要調整branch-api以允許分支作業成為非作業類型(即計算文件夾)
聽起來你需要實現一個BranchProjectFactory
(例如: WorkflowBranchProjectFactory
),它是ComputedFolder
的工廠(例如: WorkflowMultiBranchProject
)。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.