2017-09-27 52 views
1

我的開發團隊希望使用單個GIT倉庫存儲多個微服務,因爲只同步一個倉庫更方便。用於多項目git存儲庫的一個Jenkinsfile

不幸的是,我發現的所有詹金斯管道文獻總是在只有一個微服務的回購站的根部顯示Jenkinsfile。

如果我們考慮下面的Git倉庫結構:

MyProject 
     ¦-> Microservice1 
     ¦    ¦-> src/main/java/... 
     ¦    ¦-> src/main/docker/Dockerfile 
     ¦ 
     ¦-> Microservice2 (etc.) 
     ¦-> Microservice3 (etc.) 
     ¦ 
     ... 
     ¦-> Jenkinsfile 

我如何檢測其微服務項目,以僅這些項目執行德管道進行了更新的jenkinsfile裏面?

回答

0

我不知道你是否不知何故通過藍海UI限制你自己,但是如果你通過傳統的UI設置了一個管道作業,那麼要運行的jenkins文件就是一個參數。

實際上,整個場景非常靈活,比它首次出現的要多得多。我維護一個有大約20個相互依賴模塊的系統。我有幾種不同的構建觸發器方案,具體取決於是否要構建隔離模塊或重建相關模塊,以及作業是從gitlab(我們使用的)還是手動觸發的。我不想在每個回購中維護多個副本。

我發現我可以做的是有另一個包含詹金斯的東西 - 它是一個共享庫,以及包含幾個有效的Jenkinsfile和我通過load()使用的子腳本。 Jenkins文件加載相關的真實回購並執行相應的構建作業。