我一直在處理這個問題幾個小時,現在看來我做錯了什麼。Jenkins notifyCommit觸發器不工作?
首先,SVN的post-commit鉤子已經工作,因爲我已經能夠看到日誌,這裏是代碼的post-commit:
#!/bin/sh
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/bin/echo "$REPOS $REV $UUID" >> /var/subversion/svn-post-commit.out
需要注意的是,它的工作需要執行chmod 777以提交併執行chown www-data:www-data到svn存儲庫。
什麼不工作是詹金斯notifyCommit,會自動建立在詹金斯項目:
/usr/bin/wget \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "'svnlook changed --revision $REV $REPOS'" \
--output-document "-" \
--timeout=2 \
http://localhost:8080/subversion/${UUID}/notifyCommit?rev=$REV
我也試圖通過捲曲調用
curl --data "rev=4" http://localhost:8080/subversion/c8bb87ec-9a19-4975-ab9d-8b15741e6d7e/notifyCommit
沒有錯誤,但是詹金斯沒有建。
任何想法?
捲曲的答覆:
* About to connect() to 10.1.1.133 port 8080 (#0)
* Trying 10.1.1.133... connected
> POST /subversion/c8bb87ec-9a19-4975-ab9d-8b15741e6d7e/notifyCommit HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: 10.1.1.133:8080
> Accept: */*
> Content-Length: 5
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 5out of 5 bytes
< HTTP/1.1 200 OK
< Server: Winstone Servlet Engine v0.9.10
< Connection: Close
< Content-Type: text/html;charset=UTF-8
< Date: Mon, 22 Oct 2012 05:48:49 GMT
< X-Powered-By: Servlet/2.5 (Winstone/0.9.10)
<
* Closing connection #0
感謝,
czetsuya
嘗試添加-v到您的curl命令來查看響應頭說些什麼。你的詹金斯也有一個用戶名:密碼?如果是這樣,你可以嘗試在curl請求中加入http:// username:password @ localhost:8080/...... – Baldur
Hi Baldur,我已經附上了curl的回覆。我也嘗試了用戶名和密碼 - 相同的響應,但仍然jenkins沒有開始構建。 – czetsuya