2016-08-18 120 views
1

我們在git存儲庫中使用Jenkinsfile來定義Jenkins CI應該如何執行。在執行Jenkinsfile之前執行代碼

在執行由存儲庫的Jenkinsfile定義的流水線之前是否可以注入一些代碼,步驟等?有時我們需要在運行管道之前添加一些步驟。

一個例子是在執行一個行家的工作: 詹金斯文件包含的步驟克隆,構建,測試,安裝 因此運行的管道工作將創建一個步驟管道:

cloneFromGit->buildMvn->testMvn->installMvn 

但是我們需要確保所有構建工件(罐子等)進入我們的工件存儲庫。我們需要的是能夠更新/更改Jenkins文件以添加額外的步驟。使用我們需要能夠在上面的例子有管道運行下列步驟操作:

cloneFromGit->buildMvn->testMvn->installMvn->pushToArtifactRepository 

侵入式/簡單的方法是將pushToArifactRepository - 工序添加到所有的Jenkinsfiles,但是我們確實有(也不需要)控制任何給定的內容Jenkinsfile

回答

1

我可以推薦使用Jenkins Workflow Global Library。在這裏,您可以定義不同管道作業之間共享的功能。但是,這需要每個Jenkinsfile都積極地調用「構建後」任務。該任務的實際執行可以隱藏在全局庫中,因此Jenkinsfile可以非常簡單。

在我使用的例子,我Jenkinsfile S作爲僅遵循觸發流水線執行:

def pipe = new org.typo3.chefci.v1.Pipeline() 
pipe.execute() 

實際的實現是在central repository

+0

這就是我的想法。我們目前正在使用全球圖書館選擇「東西」。我們真的不希望在所有詹金斯文件中強加一個強制性的最後一步,但如果這是唯一的方法,那就這樣做吧。 –

+0

我的意思是這個問題實際上並不是[標籤:jenkins-pipeline]具體。有例如[全球郵政腳本插件](https://wiki.jenkins-ci.org/display/JENKINS/Global+Post+Script+Plugin)(從未親自使用過),可以在每次構建後執行您的代碼。不知道,如果它也適用於'WorkflowJob'。 – StephenKing

相關問題