2015-11-03 32 views
3
  • 我已經在我的電腦上設置了Jenkins的本地實例,我可以通過 訪問它 - 「http://localhost:8080」。
  • 創建一個公共Git存儲庫,並在那裏添加了我的ASP.NET MVC 項目。
  • 還配置了Jenkins來構建項目,並且它非常好地完成了作業 。

但是,這是一個手動觸發器。我的意思是,只有當用戶點擊Jenkins控制檯中的「Build Now」時,纔會觸發構建。Github + Jenkins >>如何觸發代碼庫中的「提交和推送」構建?

實際上,我的要求是在提交和推送更改時觸發構建。 (這意味着,在簽入更改時的「提交和推送」)。

我提到了很多博客和文章,並且瞭解了Git鉤子。我也嘗試創建「post-receive」鉤子。我在源代碼映射的位置創建了一個鉤子(例如,「E:\ Git \ test-jenkins.git \ hooks」)。

#!/bin/bash 
curl POST "http://localhost:8080/job/Test-Jenkins/build" --data delay=0sec 

但這不起作用。構建永遠不會觸發「提交和推送」。當我嘗試直接在瀏覽器中複製URL時,它會觸發構建,所以我認爲URL沒有問題。但腳本本身沒有得到執行。

任何人都可以請建議如何解決這個問題?

對此非常感謝。

回答

2

這是因爲Github服務器將無法到達本地託管的Jenkins服務器來觸發構建。

您將需要static IP address或者您需要將DNS條目映射到您的動態IP。另外,您需要打開端口8080以進行外部訪問。只有當GitHub能夠通過它的webhook到達你的本地實例。

希望它能幫助:)在Gi​​thub上你的倉庫設置

+0

參考步驟#8文章>> http://www.frictionlesscode.com/have- 30分鐘的持續集成/在這裏,作者在配置post-receive git鉤子時只使用localhost(沒有IP地址)。我相信這應該在本地主機上工作 - 因爲,git鉤在localhost非常容易訪問的本地計算機上。你認爲這仍然是因爲本地主機? – Nirman

+1

對於將來的讀者,上面的評論中鏈接的文章@Nirman描述了在PC上運行Jenkins,配置了一個配置了post commit hook的本地git存儲庫 - 因此文章作者不需要外部可訪問的IP地址 - 他不'使用GitHub。 –

+0

@marfarma:你是對的,在OP的情況下,因爲他使用Github,他需要讓jenkins託管在公共IP上。 – Arpit

0

我認爲你應該使用「網絡掛接&服務」。請看下面的圖片:jenkins + github

要實現它,你必須有一個公共領域爲您詹金斯

相關問題