2017-06-26 84 views
2

我在設計一個Jenkins CICD管道,我有一個以下問題。從另一個Jenkins文件調用遠程jenkins文件

我來自devops團隊,負責爲多個開發團隊控制Jenkins管道。我基本上想寫一個可以由多個團隊運行的多個階段的Jenkins文件。我知道這個Jenkins文件可以被檢入到每個團隊的Gitrepo中,只要修改代碼回購,它就可以調用完整的管道。

爲了確保這個JenkinsFile是可維護的,並且對於此Jenkins文件的任何未來更改,我不必要求所有各個團隊在其Gitrepo中更新此文件,我希望將此文件放置在中央Gitrepo中由我的團隊控制。

是否可以從不同的Gitrepos調用這個Jenkins文件?任何例子?

回答

5

這是我如何能做到這一點:

我的基地回購簡稱遠程回購這樣的:

#!/usr/bin/env groovy 
def jenkinsFile 
stage('Loading Jenkins file') { 
    jenkinsFile = fileLoader.fromGit('testjenkinsstuff/cicd/testMyPipeline', 'https://github.myorg.com/user/testjenkinsstuff.git', 'master', null, '') 
} 

jenkinsFile.start() 
1

回答你的問題是這是可能的。實現它的方法必須改變(即)根據我的理解,沒有直接的配置可用。

  1. 使用「Pipeline from SCM」配置管道作業配置爲DevOps維護的回購。
  2. 不要啓用「建設時改變推到SCM」爲我們配置的github回購是從用戶/項目的github回購不同
  3. 創建一個小的網絡掛接腳本,並在「GitHub的網絡掛接」對其進行配置,因此它使一個電話當推動(或)任何其他條件時,向各自的詹金斯工作。
  4. 您的管道腳本應該足夠能夠設計「SCM url」。例如:checkout scm:http://github.org.net/ $ {JOB_NAME} .git,這裏的url是使用jenkins作業名稱構建的。
  5. 如果任何項目相關的細節必須單獨維護(即)maven/ant/gradle編譯(或)任何其他信息,請使用Shared Library資源來維護每個項目的硬編碼輸入。