是否有配置Jenkins和GitBlit的方法,以便在新代碼被推送到git時自動運行構建?Jenkins和GitBlit的集成
我聽說過在GitBlit中使用hook和post-jenknkins腳本,並在Jenkins中配置'Poll SCM',但也許還有更多高級配置?
非常感謝。
是否有配置Jenkins和GitBlit的方法,以便在新代碼被推送到git時自動運行構建?Jenkins和GitBlit的集成
我聽說過在GitBlit中使用hook和post-jenknkins腳本,並在Jenkins中配置'Poll SCM',但也許還有更多高級配置?
非常感謝。
有兩種方法可以使用Jenkins和GitBlit來構建代碼。首先是讓詹金斯調查你的SCM(在這種情況下是GitBlit),然後在Gitblit中設置一個post-receive鉤子。
Polling GitBlit for changes是最簡單的設置,但在Jenkins運行的服務器上有額外的開銷。基本前提是詹金斯將克隆你的回購,並與之前的克隆進行比較以尋找變化。如果有差異,它會觸發構建。有了許多工作和多個倉庫,這可能會真正爲您的詹金斯服務器和可能的gitblit服務器徵稅。要進行設置,只需選中Poll SCM框並選擇一個時間表。日程安排字段使用cron語法並單擊?旁邊的領域將爲您提供一個例子。
設置post-receive鉤子比較複雜,但爲您提供了真正的構建 - 提交語義。現在有兩種方法可以在Jenkins,Remote Trigger中使用或使用Gitblit的jenkins鉤子。遠程觸發器要求您爲每個作業創建一個令牌,然後將其發送到作業。由於此令牌特定於Jenkins正在構建的作業,因此您將爲每個存儲庫上運行的每個作業添加一個新的作業/令牌對。雖然這不是Jenkins或GitBlit的資源浪費,但它確實會浪費您維護這些對的時間。
GitBlit的jenkins鉤子很簡單,您可以在全局或特定存儲庫中使用它。要啓用它,請編輯$ {appserver.base}/groovy中的jenkins.groovy,其中$ {appserver.base}是您在安裝過程中設置的位置。使用Jenkins服務器的URL編輯def jenkinsUrl = gitblit.getString('groovy.jenkinsServer', 'http://your/jenkins/url')
行。你也可以在你的gitblit.properties文件中設置groovy.jenkinsServer。要強制所有存儲庫使用此掛鉤腳本,請將其添加到gitblit.properties文件中的groovy.postReceiveScripts行。否則,請在GitBlit Web應用程序中編輯您的存儲庫,並將jenkins添加到其後接收掛鉤列表中。